如何修復 Laravel 遷移中的唯一密鑰長度錯誤?

Barbara Streisand
發布: 2024-10-31 02:32:02
原創
869 人瀏覽過

How to Fix Unique Key Length Errors in Laravel Migrations?

Laravel 遷移中的唯一鍵長度問題

在Laravel 中,為表列建立唯一鍵時,可能會遇到錯誤,指出指定的密鑰太長。當為唯一鍵定義的列的長度超過允許的最大長度時,就會出現此問題。

問題排查

提供的遷移指定了唯一約束長度為 320 個字元的「電子郵件」欄位。但是,預設情況下,Laravel 中的 'email' 列被定義為預設長度為 255 的字串。此預設長度對於大多數電子郵件地址來說應該足夠了。

要解決此問題,請考慮減少長度遷移中「email」列的長度為合理的值,例如250 個字元:

$table->string('email', 250);
登入後複製

或者,您可以明確指定唯一鍵的長度作為'unique() 的第二個參數' 方法:

$table->unique('email', 'users_email_uniq', 320);
登入後複製

Laravel 5.4 及更高版本

對於Laravel 5.4 及更高版本,可以使用更全面的解決方案。在「AppServiceProvider.php」檔案中,將以下程式碼新增至「boot()」方法:

use Illuminate\Database\Schema\Builder;

public function boot()
{
    Builder::defaultStringLength(191);
}
登入後複製

將預設字串長度設定為191 可確保使用「string()」方法建立的列最大長度為191 個字符,消除了遇到唯一密鑰長度問題的可能性。

以上是如何修復 Laravel 遷移中的唯一密鑰長度錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板