我使用Laravel 5,并有一个模型Book
。
我有两个环境——dev和production
dev :在tinker
中,当我输入
Book::first()
它给了我
AppBook {
id: 1,
name: ...
produvction :同样得到
AppBook {
id: "1",
name: ...
注意dev中的id
是int
,而production中的string
因此,像
这样的条件if($id === $book->id)
在dev上可以正常工作,但在production上不能工作。
知道为什么会这样吗?有没有办法让生产环境给我int
而不是string
?
- 我已经在dev上安装了Laravel,然后通过git将代码拉到production上。所以我的
- 我的dev环境是Laravel的
homestead
. -
Book
只是我在这里使用的一个虚拟模型。我的所有模型的行为方式都与上面解释的相同。
composer.json
和composer.lock
在dev和production上是完全相同的。因此,在生产上运行composer install
应该会得到与开发相同的环境。我正在使用mysql
数据库。显然,您不希望像注释中建议的那样进行任何手动强制转换。似乎在一个服务器上,你错过了mysqlnd扩展(我需要假设你使用MySQL,因为你没有提到它在你的问题)是什么原因,所有的数据类型返回字符串。