在laravel 5.2中无法删除雄辩的数据

时间:2016-08-07 04:37:48

标签: php laravel-5.2

我想从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

什么是正确的代码?

1 个答案:

答案 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!');
}