php laravel:VAR类型不同于本地服务器



我在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',
];

最新更新