Laravel Eloquent ORM でのカスケード削除
リレーショナル データベースを使用する場合、多くの場合、カスケード削除メカニズムを実装する必要があります。 Laravel の Eloquent ORM では、これはイベント リスナーを通じて実現できます。
具体的には、「削除」イベントを利用して、特定のモデルが削除されようとしているときにコールバックをトリガーできます。このコールバックは、データベース内の関連行の削除など、必要なクリーンアップを実行できます。
これを実装するには、コードに示すように、「booted()」メソッドを使用してモデル クラス内にイベント リスナーを追加します。受け入れられた回答で提供されたスニペット:
namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { public function photos() { return $this->has_many('Photo'); } protected static function booted() { static::deleting(function (User $user) { $user->photos()->delete(); }); } }
このイベント リスナーを定義すると、「User」モデルに属する行が削除されるたびに、提供されたコールバックが自動的に実行されます。これにより、手動介入を必要とせずに、関連する「写真」モデルに削除をシームレスにカスケードできます。
さらに、データベース内の参照整合性を効果的に維持するために、この操作をトランザクション内にラップすることをお勧めします。
以上がイベントリスナーを使用してLaravel Eloquentにカスケード削除を実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。