首頁 >資料庫 >mysql教程 >Laravel 5.2 中如何防止 Eloquent 將字串主鍵強制轉換為 0?

Laravel 5.2 中如何防止 Eloquent 將字串主鍵強制轉換為 0?

Linda Hamilton
Linda Hamilton原創
2024-12-04 00:07:14340瀏覽

How to Prevent Eloquent from Casting a String Primary Key to 0 in Laravel 5.2?

Laravel 5.2:使用字串作為Eloquent 表的自訂主鍵

在Laravel 5.2 中使用Eloquent 模型時,可以遇到從字串類型的自訂主鍵取得資料時被強制轉換為 0的問題

問題陳述:
使用者在使用電子郵件作為表格的主鍵時遇到此問題,導致使用where 方法。

解:
要解決此問題,需要通知Laravel 認為主鍵不是自增整數。這可以透過在模型類別中設定 $incrementing 和 $primaryKey 屬性來實現。此外,建議在 Laravel 6.0 版本中將 $keyType 屬性設為 'string'。

以下是如何更新模型類別的範例:

class UserVerification extends Model
{
    protected $primaryKey = 'verification_token';
    public $incrementing = false;
    protected $keyType = 'string';
}

透過進行這些更改,Laravel會意識到主鍵是一個字串,不會嘗試將其轉換為整數,解決主鍵變成0 的問題。

以上是Laravel 5.2 中如何防止 Eloquent 將字串主鍵強制轉換為 0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn