我正在使用Laravel 5并拥有一本模型书.
我有两个环境 – 开发和生产
在开发:
修补时,当我这样做
Book::first()
它给了我
App\Book {
id: 1,
name: ...
关于生产:
同样的事情给了我
App\Book {
id: "1",
name: ...
请注意,id在dev中为int,但在生产时为string
因此,一个条件就好
if($id === $book->id)
它在dev上正常工作,不适用于生产.
知道为什么会这样吗?有没有办法让生产环境给我int而不是字符串?
PS:
>我已经在dev上安装了Laravel,然后通过git将代码提取到生产中.所以我的composer.json和composer.lock在dev和production上完全相同.因此,在生产中运行composer安装应该给我与开发人员相同的环境.
>我正在使用mysql数据库.
>我的开发环境是Laravel的家园.
> Book只是我在这里使用的虚拟模型.我的所有模型的行为方式与上面说明的相同.
最佳答案 显然你不想按照评论中的建议进行任何手动投射.似乎在一台服务器上你错过了
mysqlnd扩展(我需要假设你使用MySQL,因为你没有在你的问题中提到它)是什么导致所有数据类型作为字符串返回.