Laravel の Eloquent ORM では、$user->delete(); を使用してレコードを削除するときに、次のことができます。関連する行を自動的に削除したい場合など$this->photo()->delete()。これは、モデル クラスで削除イベントを利用することで実現できます。
イベント ハンドラーを設定するには、次の手順に従います。
namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { public function photos() { return $this->has_many('Photo'); } // this is a recommended way to declare event handlers protected static function booted() { static::deleting(function(User $user) { // before delete() method calls this $user->photos()->delete(); // perform additional cleanup if necessary }); } }
削除イベントハンドラーを定義すると、User モデルが削除されるたびに、関連する Photo モデルも自動的に削除されます。参照整合性を確保するには、削除プロセスをトランザクション内にラップすることをお勧めします。
以上がLaravel Eloquentでモデルを削除するときに関連する行を自動的に削除する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。