2017-08-26 45 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