我想从2个表中删除雄辩数据。表格和用户。
eloquent:id和user_id
1.users(id,name,username,email,password,admin,remember_token,updated_at,created_at)
2.dosen(iddosen,user_id,namadosen,nipy,alamatdosen,notelpdosen等)
这是我的方法:
public function destroy($id)
{
$dosenUpdate = Request::all();
$user = User::find($id);
$user->dosen()->delete($dosenUpdate);
return redirect('admin/dosen')->with('message', 'Data berhasil dihapus!');
}
当我使用该方法时,删除表中的数据。但在表用户中仍有数据。如果我把我的方法改为:
public function destroy($id)
{
$dosenUpdate = Request::all();
$user = User::find($id)->delete();
$user->dosen()->delete($dosenUpdate);
return redirect('admin/dosen')->with('message', 'Data berhasil dihapus!');
}
我收到了错误:
Call to a member function dosen() on boolean
什么是正确的代码?
答案 0 :(得分:1)
在destroy()
方法中,您将布尔值存储在$user
而不是用户模型中,因为您要删除以下行中的模型
$user = User::find($id)->delete();
此行正在删除用户模型并返回查询状态,即是否成功。因此,$user
正在存储delete()
方法的状态,而不是user
模型
将您的destroy()
方法更改为以下内容:
public function destroy($id)
{
$dosenUpdate = Request::all();
$user = User::find($id);
$user->dosen()->delete($dosenUpdate);
$user->delete();
return redirect('admin/dosen')->with('message', 'Data berhasil dihapus!');
}