[解決済み] Laravelで関連する行を自動で削除する(Eloquent ORM)
2022-04-23 05:42:47
質問
この構文で行を削除する場合。
$user->delete();
コールバックのようなものを付けて、例えばこれを自動的に行うような方法はないでしょうか。
$this->photo()->delete();
モデルクラスの内部が望ましい。
どのように解決するのですか?
これはEloquentイベントの完璧なユースケースだと思います( http://laravel.com/docs/eloquent#model-events ). delete"イベントを使用して、クリーンアップを行うことができます。
class User extends Eloquent
{
public function photos()
{
return $this->has_many('Photo');
}
// this is a recommended way to declare event handlers
public static function boot() {
parent::boot();
static::deleting(function($user) { // before delete() method call this
$user->photos()->delete();
// do the rest of the cleanup...
});
}
}
また、参照整合性を確保するために、全体をトランザクション内に配置する必要があるでしょう。
関連
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み】MySQLのカラム数が1行目の値数と一致しない【非公開
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] Laravel Eloquentを使用して複数のWhere句クエリを作成する方法?
-
[解決済み] Laravel Eloquentを使って最後に挿入されたIDを取得する
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
-
[解決済み】eloquent ORMを使用したLaravelの一括挿入
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み] ロード時にLaravel / Eloquentモデルにカスタム属性を追加しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] Fatal error: メンバ関数bind_param()のbooleanに対する呼び出し [重複] [重複
-
[解決済み】不明なMySQLサーバーのホスト
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: バインドされた変数の数が102行目のトークンの数と一致しない [終了]
-
[解決済み】 $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて]
-
[解決済み】警告。数値でない値に遭遇しました
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み】mysqli::query(): mysqli をフェッチできない
-
[解決済み] PHP 未定義関数への呼び出し