この移行ファイルがあります
Schema::create('table_one', function(Blueprint $table)
{
$table->increments('id');
$table->string('name');
$table->integer('table_two_id')->unsigned();
$table->foreign('table_two_id')->references('id')->on('table_two');
$table->timestamps();
});
そして、それを作るために更新したい-> onDelete( 'cascade');
$table->foreign('table_two_id')->references('id')->on('table_two')->onDelete('cascade');
これを行う最良の方法は何ですか?
-> change();のようなものがありますか
ありがとう
外部キーをドロップしてから再度追加し、移行を実行します。
public function up()
{
Schema::table('table_one', function (Blueprint $table) {
$table->dropForeign(['table_two_id']);
$table->foreign('table_two_id')
->references('id')
->on('table_two')
->onDelete('cascade');
});
}
Laravel docs says:
外部キーを削除するには、dropForeignメソッドを使用できます。外部キー制約は、インデックスと同じ命名規則を使用します。そのため、テーブル名と制約内の列を連結し、名前に「_foreign」を接尾辞として付けます。
$table->dropForeign('posts_user_id_foreign');
または、ドロップ時に従来の制約名を自動的に使用するarray値を渡すことができます。
$table->dropForeign(['user_id']);
https://laravel.com/docs/5.7/migrations#foreign-key-constraints