Laravel 5.2:自訂主鍵轉換問題
在Laravel 5.2 的Eloquent ORM 中使用字串作為自訂主鍵時,您可能會遇到這樣的問題:從key 擷取時鍵值會轉換為 0
說明:
Laravel 自動轉換屬性值以符合資料庫列類型。預設情況下,自動遞增主鍵被假定為整數。但是,在這種情況下,您使用字串作為主鍵,這會導致值轉換錯誤。
解決方案:
要解決此問題,您需要明確指定主鍵是一個字串,並且它不應自動遞增。為此,請將以下程式碼新增至您的模型:
protected $primaryKey = 'your_key_name'; public $incrementing = false;
確保將 'your_key_name' 替換為主鍵列的實際名稱。
進一步說明:
在Laravel 6.0 及更高版本中,還需要設定$keyType 屬性to 'string':
protected $keyType = 'string';
這明確指定主鍵是字串並防止任何潛在的類型轉換。
透過實作此解決方案,您將能夠使用字串作為在 Laravel Eloquent 模型中自訂主鍵,而不會遇到轉換問題。
以上是Laravel 5.2:為什麼我的字串主鍵轉換為 0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!