修复 Laravel 迁移中的“指定密钥太长”错误
在 Laravel 中迁移表时,开发者可能会遇到“指定密钥太长”的问题太长”的错误。这是因为 MySQL 中键的默认最大长度是 767 字节。
一种解决方案是在迁移中显式指定键长度。例如:
Schema::create('users', function(Blueprint $table) { $table->increments('id'); $table->string('email', 250)->unique('users_email_unique'); });
Laravel 5.4 及以上
在 Laravel 5.4 及以上,可以在 AppServiceProvider.php 文件中设置默认字符串长度:
<code class="php">use Illuminate\Database\Schema\Builder; public function boot() { Builder::defaultStringLength(191); }</code>
或者,您可以指定迁移中各个列的长度:
<code class="php">Schema::create('users', function(Blueprint $table) { $table->increments('id'); $table->string('email', 191)->unique('users_email_unique'); });</code>
以上是如何修复 Laravel 迁移中的'指定密钥太长”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!