我在Laravel应用程序中遇到了一个奇怪的错误。
Model x
的属性status
是Localhost中的整数,但是我的生产服务器中的字符串。
"status" => 1
"status" => "1"
这在我的应用程序中引发了错误,因为我正在使用严格的比较。
两者都在PHP 5.6上使用Laravel Framefork 5.4.1,并使用MySQL。
使用所以我不知道区别在哪里...
它取决于php和mysql之间使用的驱动程序。
通过检查
的输出的PDO_MYSQL部分,检查其中哪一个是使用的php -i
您的输出应类似于
pdo_mysql
PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.12-dev - 20150407 - $Id: b396954eeb2d1d9ed7902b8bae237b287f21ad9e $
本机驱动程序返回整数作为整数,而另一个则将其返回为字符串。
因此,解决方案是删除旧驱动程序并安装本机。
或将$casts
用于模型。
protected $casts = [
'status' => 'integer',
];