プログラミング初心者です
まず外部キー制約とは、ざっくり自分の理解だと
『親テーブルと子テーブルがあって、「子テーブルのこのカラムには好き勝手な値を入れちゃダメだよ。親テーブルのこのカラムから選んで入れてね」な制約のこと』
で、親テーブルのあるレコードと、関係してる子テーブルのレコードを同時に消したい。
でも制約があるからControllでただdelete()
実装してもエラーになりました(でも実装は必要です)
そんな時は、外部キー制約を実装したmigrationファイルにこう書きます
$table->foreign('folder_id')->references('id')->on('folders')->onDelete('cascade');
foreignには 子テーブルで親と連携したいカラム
referencesには 親の何のカラムと連携したいか
onには 親migrationのテーブル名
の後ろに
onDelete('cascade');
を入力したら
親が削除されたら子も削除できるようになりました!
あ、
php artisan migrate:refresh
忘れずに。