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

问题描述 投票:0回答:3

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

使用 PHP 7.3

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

$data = $data->pluck(id);

(本地) 输出 => [1,2,3]

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

有人可以帮忙解决这个问题吗?我可以循环进行类型转换,但我的控制器中有 100 个 for 函数。不可能对每个查询进行类型转换。

php mysql laravel laravel-5 eloquent
3个回答
0
投票

您可以在模型中使用铸造属性铸造

protected $casts = [ 
        'field_name1' => 'integer', 
    ];

0
投票

这是由于生产服务器(托管服务器)上缺少插件造成的。 您需要安装

mysqlnd
插件才能解决该问题。

您没有提到您正在使用哪个操作系统。如果是Linux的话可以像这样检查

mysqlnd
是否安装

$ sudo dpkg -l | grep 'mysqlnd'

如果没有安装,你需要像这样安装(假设你有php5)

$ sudo apt-get install php-mysqlnd

包名称可能因 PHP 版本而异。

请参阅我的答案以获取更多信息。


0
投票

您需要安装并选择nd_pdo_mysql而不是pdo_mysql。

© www.soinside.com 2019 - 2024. All rights reserved.