简单的问题:我是 Laravel 新手。我有这个迁移文件:
Schema::create('lists', function(Blueprint $table) {
$table->increments('id');
$table->string('title', 255);
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->timestamps();
});
我想更新它以添加 onDelete('cascade')
。
最好的方法是什么?
最佳答案
首先,您必须将您的 user_id
字段设置为索引:
$table->index('user_id');
之后,您可以使用级联操作创建外键:
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
如果您想通过新的迁移来做到这一点,您必须首先删除索引和外键,然后从头开始执行所有操作。
在 down() 函数上,您必须执行此操作,然后在 up() 函数上执行我上面写的操作:
$table->dropForeign('lists_user_id_foreign');
$table->dropIndex('lists_user_id_index');
$table->dropColumn('user_id');
关于Laravel 迁移添加外键的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26437342/