不允许 Laravel 8 序列化“PDO”

时间:2021-03-12 18:23:17

标签: laravel-8

我的登录控制器有问题。当我登录时,它给出了标题中的消息。如果我更改重定向以返回视图,它会起作用,但 url 显示以前的 url。

代码:

protected function authenticated(Request $request, $user)
    {
        if(Auth::check()) {
            if(Auth::user()->hasRole(['admin-user', 'super-user'])) {
                $users = User::where('id', '!=', \auth()->user()->id);
                return redirect()->to('/admin_dashboard')->with(compact('users'));
            }else {
                return redirect('/home');
            }
        }
    }

我正在使用 spatie-permissions 和两个角色 admin-user 和 super-user。

我有一个只有 on 方法的 AdminDashboardController

public function index() {
return view('admin.admin_dashboard');
}

如果我在经过身份验证的方法中注释代码,它可以正常登录,但如果存在管理员用户或超级用户角色,我需要将其重定向到管理员页面。我在 if 语句中设置了一个断点,然后它转到重定向-> 到。不知道我做错了什么。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的错误,但原因不同。

您收到此错误是因为您正在尝试序列化查询生成器实例。您只能序列化一个集合/模型。

$users = User::where('id', '!=', \auth()->user()->id);

这将返回一个 Builder 实例,因此将其编辑为:

$users = User::where('id', '!=', \auth()->user()->id)->get();
相关问题