2017-08-26 49 views
-1

我在我的數據庫中添加了一個外鍵值,所以當您嘗試刪除具有該值的用戶時,它不會讓您刪除它,但是,我無法弄清楚如何通過刀片模板管理這個,即時得到的laravel錯誤:防止在Laravel上級聯刪除

(2/2)QueryException SQLSTATE [23000]:完整性約束違規:1451無法刪除或更新父行,外鍵約束失敗

所以,我得到這個,但沒有工作:

if ($user->delete()) { 
        $request->session()->flash('success', 'User Deleted.'); 
        return redirect()->route('admin/user.getall'); 
       } else { 
        $request->session()->flash('danger', 'Unable to delete user with Value.'); 
         return redirect()->route('admin/user.getall'); 
       } 

在這種情況下我能做什麼?,我不想刪除密鑰,或者我不想在嚴格的數據庫上更改爲false,我真的,我需要這個,任何其他方式?

謝謝。

回答

1

你可以做一些例外handelling

try{ 
    $user->delete(); 
} 
catch (\Illuminate\Database\QueryException $e){ 
     $request->session()->flash('danger', 'Unable to delete user with Value.'); 
     return redirect()->route('admin/user.getall'); 
    } 
+0

Laravel 5.4不適用於我的情況,我需要添加一些內容嗎? – lucasvm1980

+0

你有什麼錯誤? – sumit

+0

沒有錯誤,它只是重定向到getall,它也不會刪除普通用戶。 – lucasvm1980

-1

外鍵的要點是,只要有數據鏈接到數據庫(通過外鍵),就無法從數據庫中刪除數據。因此,您必須首先刪除鏈接到該用戶的所有數據,然後才能刪除該用戶。

請看看Eloquent relationships我相信Laravel可以爲您分配比您目前使用的更多!和tutorial

+0

沒有,倒也只是爲了防止和消息發送給用戶。 – lucasvm1980

+0

我不知道你是什麼意思。這個問題本身也不太清楚:我假設你想知道爲什麼你會得到這個錯誤以及如何解決這個錯誤,但這看起來並不是你想要的。 – Jeffrey

+0

我需要向用戶顯示一條消息,我可以在此處執行此操作: – lucasvm1980