我正在尋找銷燬雄辯集合的策略,例如模型「包含」其他模型。Laravel:刪除雄辯集合
在Ruby on Rails的ActiveRecord中,有一個dependent: :destroy
選項,可以在定義關係時放置,也就是說,例如,一個order
被刪除,然後order_lines
也必須去。
Laravel中有類似的東西嗎?或者除了手動清理並將其包裝在交易中之外,還有其他替代方案?
我正在尋找銷燬雄辯集合的策略,例如模型「包含」其他模型。Laravel:刪除雄辯集合
在Ruby on Rails的ActiveRecord中,有一個dependent: :destroy
選項,可以在定義關係時放置,也就是說,例如,一個order
被刪除,然後order_lines
也必須去。
Laravel中有類似的東西嗎?或者除了手動清理並將其包裝在交易中之外,還有其他替代方案?
如果使用Laravel架構構建,你應該使用外鍵和外鍵添加例如:
$table->foreign('entry_id')
->references('id')
->on('entries')
->onDelete('CASCADE');
當然你也可以做,例如phpMyAdmin的相同。
當使用這樣的結構,如果從entries
這種情況下,記錄將被刪除,自動從該表中有entry_id
一樣id
從entries
正被刪除將被刪除的記錄。
它不是一個觸發器,因爲觸發器的結構要複雜得多,它只是定義關係並告訴如果相關的父記錄將被刪除,該怎麼做。
儘可能多是一種做法,它不是解決方案。我正在尋找讓Laravel/Eloquent工作的方法。不是我的SQL數據庫。 – 2014-10-16 20:38:47
@NielsB也許你想看看http://stackoverflow.com/questions/14174070/automatically-deleting-related-rows-in-laravel-eloquent-orm然後,但使用'onDelete'是我認爲沒有編碼的最佳選擇 – 2014-10-16 20:54:43
我同意,但我更喜歡編碼。感謝您提供其他問題的鏈接。我正在投票結束這個重複。 – 2014-10-16 21:02:10
你有沒有想過爲DB中的相關表正確設置ondelete? – 2014-10-16 19:44:25
ondelete?你在談論數據庫觸發器嗎?我不想把這種邏輯放入數據庫中。 – 2014-10-16 19:49:02
[自動刪除Laravel中的相關行(Eloquent ORM)]的可能的重複(http://stackoverflow.com/questions/14174070/automatically-deleting-related-rows-in-laravel-eloquent-orm) – 2014-10-16 21:01:19