PHP Laravel: var 的类型从本地到服务器是不同的
PHP Laravel: Type of var is different from local to server
我在 Laravel 应用程序中遇到了一个奇怪的错误。
模型x
的属性status
在localhost中是一个整数,但在我的生产服务器中是一个字符串。
"status" => 1
"status" => "1"
这会在我的应用程序中引发错误,因为我使用的是严格比较。
两者都在 PHP 5.6 上使用 Laravel Framework 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 $
本机驱动程序 return 整数作为整数,但其他 return 它们作为字符串。
所以解决办法就是去掉旧的驱动,安装原生的。
或将 $casts
用于您的模型。
protected $casts = [
'status' => 'integer',
];
我在 Laravel 应用程序中遇到了一个奇怪的错误。
模型x
的属性status
在localhost中是一个整数,但在我的生产服务器中是一个字符串。
"status" => 1
"status" => "1"
这会在我的应用程序中引发错误,因为我使用的是严格比较。
两者都在 PHP 5.6 上使用 Laravel Framework 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 $
本机驱动程序 return 整数作为整数,但其他 return 它们作为字符串。
所以解决办法就是去掉旧的驱动,安装原生的。
或将 $casts
用于您的模型。
protected $casts = [
'status' => 'integer',
];