1対多接続の2つのモデルがあります。たとえば、User
ans UserComment
モデルとしましょう。私がUser::destroy
メソッドを呼び出すときには、のインスタンスをuser_id
のフィールドが、User
のid
に等しい値で破棄したいと考えています。私は単にUser::destroy
メソッドをオーバーロードすることがありますが、これを達成するためのより良い方法があるのだろうかと思います。Laravelのすべての依存関係を持つモデルインスタンスを破棄します
0
A
答えて
1
はい、移行によって移行するのが最善の方法です(より効率的です)。 User
とUserComment
という小さな例を考えてみましょう。ユーザーの移行はそのままです。 UserCommentの場合:
Schema::create('usercomments', function(Blueprint $table){
$table->integer('user_id')->unsigned();
....
$table->foreign('user_id', 'fk_user_id')
->references('id')
->on('users')
->onDelete('cascade')
->onUpdate('cascade'); //not needed in your case.
});
[OK]を私は長い間使用していないので、構文をオンラインでチェックすることがあります。しかし、それはその要点です。
ユーザーを削除すると、彼のコメントはすべてDBによって自動的に削除されます。
Goodluck mate!
1
これは(上記のEddyTheDoveで提案したように)データベースを使用しますが、このためにデータベースを使用したくない場合は、ユーザーモデルの削除イベントに何かを追加できます。
例:
protected static function boot() {
parent::boot();
static::deleting(function($user) {
$user->user_comments()->delete();
});
}
関連する問題
- 1. Pax Exam:すべての依存関係を持つバンドルをプロビジョニング
- 2. すべての依存関係を持つPipアンインストール
- 3. トリガーの依存関係:destroy:オーバーライドdestroy-methodを使用して破棄
- 4. 依存関係とテストの依存関係を持つjarを作成する
- 5. ジョブジョブの依存関係を持つトルクジョブ
- 6. 依存関係を持つオブジェクトのデシリアライズ
- 7. すべての依存関係を持つqtアプリケーションを展開する
- 8. すべての依存関係を持つ.aarを構築する
- 9. すべての依存関係を持つPythonアプリケーションを配布するには
- 10. mavenサブプロジェクト - 独自の依存関係を持つべきか
- 11. Verilogコンパイルのすべての依存関係を見つける
- 12. couchDB Windows用のすべての依存関係を持つ完全なパッケージ
- 13. 外部の依存関係を持つすべての内部アセンブリとアセンブリ
- 14. 依存関係を持つAntスクリプト
- 15. 依存関係を持つSbtタスク
- 16. 依存関係を持つコンバーター
- 17. 依存関係を持つC++キュー
- 18. cmake依存関係を持つCメタ
- 19. フィールド依存関係を持つLuceneクエリ
- 20. 依存関係を持つPythonスクリプト
- 21. 依存関係を持つSparkR雇用
- 22. 依存関係を持つカスタムMSBuildタスク
- 23. リファクタルーター - 依存関係を持つビュー
- 24. リモートURL依存関係を持つMakefile
- 25. すべての依存関係についてJavaコンパクトプロファイルを検証します
- 26. Mavenで依存関係、プラグインの依存関係、コンパイラなどをすべてダウンロードしますか?
- 27. すべての関係を持つLaravel - dd()モデル
- 28. ライブサーバー上のLaravel依存関係のインストール
- 29. 依存関係のプロパティ依存関係
- 30. 依存関係の依存関係
私は移行は、MySQLのストアドプロシージャを設定することができる右のことを理解していますか?これは驚くように見えます!私はそれをチェックします、ありがとう。 –
Googleでこれについて語った。これはストアドプロシージャではなく、MySQLの外部キー実装です。とにかく、私のSQL知識のギャップを記入していただきありがとうございます。 –