ホームページ > バックエンド開発 > PHPチュートリアル > Laravel Eloquentでモデルを削除するときに関連する行を自動的に削除する方法は?

Laravel Eloquentでモデルを削除するときに関連する行を自動的に削除する方法は?

Patricia Arquette
リリース: 2024-12-10 17:13:16
オリジナル
248 人が閲覧しました

How to Automatically Delete Related Rows When Deleting a Model in Laravel Eloquent?

Laravel で関連する行を自動的に削除する (Eloquent ORM)

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート