gpt4 book ai didi

php - laravel 5.4 varchar 字段迁移

转载 作者:行者123 更新时间:2023-12-05 05:19:34 26 4
gpt4 key购买 nike

当你创建一个迁移并且你有一个像 varchar 这样的字符串字段时,你像下面的代码一样设置它但是我在迁移中得到一个错误,说它的字节太多

Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('email')->unique();
$table->timestamps();
});

如果我这样做

$table->string('email', 255)->unique(); 

将它设置为最大值 255 我仍然得到同样的错误,我确信 255 是 varchar 字段的最大值,但如果我在 varchar 字段中设置字段 250,我不会收到任何错误。那么 laravel 5.4 中的迁移发生了什么

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes

最佳答案

对此有两种解决方案:升级到 MySQL 5.7 或使用更短的 varchars。如果您无法轻松升级,请将此放入您的 AppServiceProvider.php 文件 - 它将默认字符串长度设置为有效的值。

use Illuminate\Support\Facades\Schema;

public function boot()
{
Schema::defaultStringLength(191);
}

关于php - laravel 5.4 varchar 字段迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45767007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com