Eloquent 什麼時候將字串主鍵轉換為 0?

Patricia Arquette
發布: 2024-10-19 16:55:02
原創
230 人瀏覽過

When Does Eloquent Cast a String Primary Key as 0?

Eloquent 自訂主鍵問題:「verification_token」變成0

嘗試使用字串作為Eloquent 表的主鍵時Laravel 5.2 中,出現了一個意外問題,最初設定為驗證令牌的主鍵在檢索表格資料時轉換為0。

此行為源自於 Laravel Model 類別中屬性的預設轉換。對於具有自動遞增 ID 的表,ID 會自動轉換為整數。但是,當主鍵是字串時,此轉換過程會導致鍵被解釋為零。

要解決此問題,請對Eloquent 模型進行以下調整:

  1. 使用$primaryKey 顯式定義主鍵:
<code class="php">protected $primaryKey = 'verification_token';</code>
登入後複製
  1. 透過將$incrementing 設為false 來防止自動遞增:
<code class="php">public $incrementing = false;</code>
登入後複製
  1. 對於Laravel 6.0 或更高版本,額外定義$keyType:
<code class="php">protected $keyType = 'string';</code>
登入後複製

這些修改指示Laravel 將主鍵視為字串而不是整數,確保它保留其原始值取得模型的屬性後。

透過實作這些更改,您可以成功使用字串作為 Eloquent 表中的自訂主鍵,而不會遇到主鍵變為 0 的問題。

以上是Eloquent 什麼時候將字串主鍵轉換為 0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!