我被這個功能困住了。我想洗掉library和之間具有多對多關系的檔案client。我想我在這里做錯了。
檔案有id,id_client,id_biblio和file
我不知道如何從 clientController
public function delete($id)
{
$client_docs = ClientDocument::find($id);
$client_docs->delete();
return redirect()->back()->with('success', 'client has been Deleted');
}
uj5u.com熱心網友回復:
雖然您可以先洗掉關系,但如果您的外鍵設定為級聯洗掉,則不必這樣做。
如果您有一個客戶端,它有一個 ID,并且該客戶端有一個或多個檔案,每個檔案都通過檔案表中(例如)client_id 上的外鍵與客戶端相關聯,那么當您設定該外鍵時關鍵您有多種選擇,可以在洗掉客戶端時如何處理檔案。
級聯是您在這種情況下想要使用的一種 - 如果客戶端被洗掉并且關系設定為級聯,則與該客戶端關聯的任何檔案也將被洗掉。
替代方案是“限制”,它將保留檔案,但 client_id 欄位將不可編輯,或“設定為空”,將保留檔案,但將 client_id 欄位設定為空。在這種情況下,這些似乎都不合適。
uj5u.com熱心網友回復:
Storage::disk('public')->delete($document->name);
首先,您必須從存盤中洗掉該檔案。然后獲取資料庫 ID 并使用:
$delete = Document::find($id);
$delete->delete();
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/321852.html
上一篇:Route沒有將我重定向到正確的頁面。它只是向我顯示了相同的頁面,但url發生了變化
下一篇:未指定輸入檔案。面板/PHP
