首页 文章

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

提问于
浏览
0

我想删除2个表中的雄辩数据 . 表dosen和用户 .

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 回答

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

相关问题