簡體   English   中英

從服務器獲取時 Laravel 將 Int 轉換為字符串的問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM