here で述べたように、マイグレーションで関係を作成するときにWord cascade
を使用できます
しかし、外部キーがdeleting
またはupdating
のとき、他のアクションについて何も言わなかったのではないでしょうか
そのようなものがあるかどうかわかりません:
$table->foreign('user_id')
->references('id')->on('users')
->onDelete('set null');
//->onDelete('set_null');
//->onDelete('setNull');
またはonUpdate
と同じようにphpMyAdmin
と同様にno action
について
ありがとう
phpmyadmin
で言及されているすべてのオプションをこの方法で実行できます。
$table->...->onDelete('CASCADE');
$table->...->onDelete('SET NULL');
$table->...->onDelete('RESTRICT');
// do not call the onDelete() method if you want the RESTRICT option.
外部キーフィールドをnull可能として設定する必要があります。
$table->...->unsigned()->nullable();
ソースコードを参照してください:
`vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php` in the function compileForeign()
渡したものをテーブルクエリに追加するだけです。
if (! is_null($command->onDelete)) {
$sql .= " on delete {$command->onDelete}";
}
if (! is_null($command->onUpdate)) {
$sql .= " on update {$command->onUpdate}";
}
したがって、必ず次のいずれかを渡します。 「カスケード」、「アクションなし」、「制限」、または「nullを設定」
注:行う [〜#〜]ない[〜#〜] 次のようなアクションでアンダースコアを使用します "set_null"および "no_action"