0
0

More than 3 years have passed since last update.

外部キー制約をかけてる親と子の削除の仕方(Laravel )

Last updated at Posted at 2021-05-29

プログラミング初心者です

まず外部キー制約とは、ざっくり自分の理解だと
 『親テーブルと子テーブルがあって、「子テーブルのこのカラムには好き勝手な値を入れちゃダメだよ。親テーブルのこのカラムから選んで入れてね」な制約のこと』

で、親テーブルのあるレコードと、関係してる子テーブルのレコードを同時に消したい。
でも制約があるからControllでただdelete()実装してもエラーになりました(でも実装は必要です)

そんな時は、外部キー制約を実装したmigrationファイルにこう書きます

$table->foreign('folder_id')->references('id')->on('folders')->onDelete('cascade');

foreignには 子テーブルで親と連携したいカラム
referencesには 親の何のカラムと連携したいか
onには 親migrationのテーブル名
の後ろに

onDelete('cascade');

を入力したら

親が削除されたら子も削除できるようになりました!

あ、

php artisan migrate:refresh

忘れずに。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0