Php 从服务器获取时,Laravel将Int转换为字符串时出现问题?

Php 从服务器获取时,Laravel将Int转换为字符串时出现问题?,php,mysql,laravel,laravel-5,eloquent,Php,Mysql,Laravel,Laravel 5,Eloquent,我的web应用程序在服务器上运行。我在本地测试了代码,效果很好。我从本地服务器获取id为int,但在托管服务器中获取字符串 使用PHP7.3 $data = DB::table('users') ->select('id') ->get(); $data = $data->pluck(id); (本地) 输出=>[1,2,3] (主持) 输出=>[“1”、“2”、“3”] 有人能帮助解决这个问题吗?我可以做循环到类型转换,但在我的控制器中有100的函数。无法在每个查询中键入

我的web应用程序在服务器上运行。我在本地测试了代码,效果很好。我从本地服务器获取id为int,但在托管服务器中获取字符串

使用PHP7.3

$data = DB::table('users')
->select('id')
->get();

$data = $data->pluck(id);
(本地) 输出=>[1,2,3]

(主持) 输出=>[“1”、“2”、“3”]


有人能帮助解决这个问题吗?我可以做循环到类型转换,但在我的控制器中有100的函数。无法在每个查询中键入cast。

这是由于生产服务器(托管服务器)上缺少插件造成的。 您需要安装
mysqlnd
插件来修复此问题

您没有提到您正在使用的操作系统。如果是Linux,您可以检查
mysqlnd
是否像这样安装

$ sudo dpkg -l | grep 'mysqlnd'
如果没有安装,您需要像这样安装它(假设您有php5)

包名称可能因PHP版本而异

有关更多信息,请参阅my。

您可以在模型中使用铸造

protected $casts = [ 
        'field_name1' => 'integer', 
    ];
可能会有所帮助
protected $casts = [ 
        'field_name1' => 'integer', 
    ];