Eloquent 自訂主鍵問題:「verification_token」變成0
嘗試使用字串作為Eloquent 表的主鍵時Laravel 5.2 中,出現了一個意外問題,最初設定為驗證令牌的主鍵在檢索表格資料時轉換為0。
此行為源自於 Laravel Model 類別中屬性的預設轉換。對於具有自動遞增 ID 的表,ID 會自動轉換為整數。但是,當主鍵是字串時,此轉換過程會導致鍵被解釋為零。
要解決此問題,請對Eloquent 模型進行以下調整:
<code class="php">protected $primaryKey = 'verification_token';</code>
<code class="php">public $incrementing = false;</code>
<code class="php">protected $keyType = 'string';</code>
這些修改指示Laravel 將主鍵視為字串而不是整數,確保它保留其原始值取得模型的屬性後。 透過實作這些更改,您可以成功使用字串作為 Eloquent 表中的自訂主鍵,而不會遇到主鍵變為 0 的問題。
以上是Eloquent 什麼時候將字串主鍵轉換為 0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!