[英]Issue with Laravel casting Int to string when fetching from server?
我的 web 應用程序在服務器上運行。 我在本地測試了代碼,它工作正常。 我從本地服務器獲取 id 作為 int,但在托管服務器中獲取字符串。
使用 PHP 7.3
$data = DB::table('users')
->select('id')
->get();
$data = $data->pluck(id);
(本地)output => [1,2,3]
(托管)output => ["1","2","3"]
任何人都可以幫助解決這個問題嗎? 我可以循環輸入類型轉換,但在我的 controller 中有 100 個 function。 無法對每個查詢進行類型轉換。
這是由於生產服務器(托管服務器)上缺少插件。 您需要安裝mysqlnd
插件來解決此問題。
您沒有提到您使用的是哪個操作系統。 如果是Linux,可以這樣查看mysqlnd
是否安裝
$ sudo dpkg -l | grep 'mysqlnd'
如果沒有安裝,你需要像這樣安裝它(假設你有php5)
$ sudo apt-get install php-mysqlnd
Package 名稱可能因 PHP 版本而異。
請參閱我的答案以獲取更多信息。
您可以在 model 中使用轉換屬性轉換
protected $casts = [
'field_name1' => 'integer',
];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.