-
Eloquentの関連メソッドを使用する方法: 例えば、親モデルが「Post」で子モデルが「Comment」という関係の場合、以下のようにコードを記述します。
$post = Post::find($postId); $post->comments()->delete();
上記の例では、
$post->comments()
はコメントのリレーションを返し、delete()
メソッドを呼び出すことで関連するコメントを一括で削除します。 -
クエリビルダを使用する方法: クエリビルダを使用して直接データベースにクエリを送信することもできます。以下はその一例です。
DB::table('comments')->where('post_id', $postId)->delete();
上記の例では、
comments
テーブルからpost_id
が指定した値に一致するレコードを削除しています。 -
モデルのイベントを使用する方法: モデルの
deleting
イベントを使用して、親モデルが削除されるときに関連する子レコードを削除することもできます。以下はその一例です。class Post extends Model { protected static function boot() { parent::boot(); static::deleting(function ($post) { $post->comments()->delete(); }); } // ... }
上記の例では、
deleting
イベントが発生したときにコメントを削除するコードが実行されます。
これらの方法のいずれかを使用すると、Laravelで子関係のレコードを削除することができます。適切な方法を選択し、プロジェクトの要件に応じて使用してください。