我有兩個具有一對多連接的模型。例如,讓它成爲User
和UserComment
模型。當我打電話給User::destroy
的方法時,我也想銷燬每個UserComment
實例,其中user_id
的字段等於id
的銷燬User
。我可能簡單地重載User::destroy
方法,但我想知道是否有更好的方法來實現這一點。在Laravel銷燬具有所有依賴關係的模型實例
0
A
回答
1
是的,最好的方法(或更高效)是通過遷移來完成。我們來舉一個User
和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.
});
好吧,我很久沒有使用這個,所以你可以檢查在線語法。但這是它的要點。
當你刪除一個用戶時,他的所有評論將被你的數據庫自動刪除。
Goodluck mate!
1
我會爲此使用數據庫(如上面的EddyTheDove所建議的那樣),但是如果您不想爲此使用數據庫...您可以將某些內容添加到用戶模型的刪除事件中。
例:
protected static function boot() {
parent::boot();
static::deleting(function($user) {
$user->user_comments()->delete();
});
}
相關問題
- 1. 在所有依賴實例中更改注入的依賴關係
- 2. 有所有關係的Laravel - dd()模型
- 3. SimpleInjector Factory委託 - 創建具有依賴關係的實例
- 4. 結構圖 - 具有依賴關係的安裝依賴關係
- 5. mvn依賴關係:具有傳遞性依賴關係的樹
- 6. 貓鼬包括具有依賴關係的模型
- 7. Rails雙重多態依賴:銷燬沒有正確銷燬
- 8. 具有所有依賴關係的Python Windows安裝程序?
- 9. 具有依賴關係的Arduino-like Makefile ...?
- 10. Seam - 具有依賴關係的ListSelectMenus
- 11. 具有Maven依賴關係的java.lang.NoClassDefFoundError
- 12. 具有依賴關係的Sbt任務
- 13. CloudKit - 具有依賴關係的CKQueryOperation
- 14. 構建具有依賴關係的Maven
- 15. 解決所有的maven依賴關係
- 16. 分發玩!應用程序具有所有依賴關係
- 17. Laravel模型:實例還是關係?
- 18. 實例化Laravel 5中的依賴關係,好的方法
- 19. 清除所有依賴關係
- 20. Grunt concat所有package.json依賴關係
- 21. 查找所有函數依賴關係
- 22. Rails依賴銷燬錯誤
- 23. 製作具有多個依賴關係的文件依賴關係圖
- 24. 新的依賴關係React native - gradle clean - 無法解決所有依賴關係
- 25. 垃圾回收時,依賴關係對象被銷燬\斷開
- 26. Rails 4依賴通過嵌套關係銷燬
- 27. 遇到問題:依賴=>:銷燬和實例變量
- 28. 具有依賴關係的庫的Javascript模式
- 29. 引入依賴關係打破了現有的依賴關係?
- 30. 這是從域模型中實例化具有依賴關係的對象的正確方法嗎?
難道我的理解對不對,要遷移能夠設置MySQL存儲過程的?這看起來很驚訝!我會檢查出來,謝謝。 –
使用Google搜索。這不是一個存儲過程,而只是MySQL外鍵實現。無論如何,感謝填寫我的SQL知識差距。 –