Eloquent ORM を使用して Laravel に関連行の自動削除を実装する
Eloquent ORM の標準の delete() メソッドは、単一行を削除します。この機能を拡張し、関連する行を自動的に削除するには、Eloquent イベントを利用します。
問題:
$user->delete() で行を削除するとき、どのようにアタッチできますか?関連する行を削除するための自動コールバック。 $this->photo()->delete()?
解決策:
deleting イベントは delete( ) メソッドが呼び出されます。モデル クラス内でイベント ハンドラーを定義することにより、削除時にクリーンアップ タスクを実行できます。
<?php namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { public function photos() { return $this->has_many('Photo'); } // This method is called before delete() is called protected static function booted () { static::deleting(function (User $user) { $user->photos()->delete(); }); } }
追加メモ:
以上がLaravel Eloquent でモデルを削除するときに、関連する行を自動的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。