在laravel 5.4中添加Admin角色

时间:2017-09-26 19:04:31

标签: php laravel admin

我有一个数据库,其中:Admin有 True isAdmin 属性,但其他用户 false isAdmin 财产。

我想通过将用户重定向到我应用中的其他网页来检查登录用户是管理员还是。我在Controller中的代码是:

public function store(User $user)
{
    if (auth()->attempt(request(['email', 'password']))) {
        if ($user->isAdmin == 1) {
            return redirect('/ShowUser');
        }
        {
            return redirect('/lo');
        }

    }
    return back()->withErrors(
        [
            'message' => 'Error'
        ]
    );

}

但这段代码不起作用;它会一直将用户发送到'/lo'。我该如何解决?

1 个答案:

答案 0 :(得分:0)

您错过了else个关键字。

就在这里:

if ($user->isAdmin == 1) {
    return redirect('/ShowUser');
}
{ // <-- right here
    return redirect('/lo');
}

添加else关键字。

if ($user->isAdmin == 1) {
    return redirect('/ShowUser');
}
else { // <-- right here
    return redirect('/lo');
}

无论如何,即使在上面的编辑之后,您的代码仍然可以正常运行。但我对你有疑问:

  • 假设user已经在数据库中了吗?

  • 数据库中isAdmin的默认值是什么?

  • 您是否将isAdmin属性作为表单或其他内容的输入传递?

  • 当您尝试登录用户 时,为什么会出现store请求?

这有点令人困惑。我可以从您的代码中判断出您正在尝试登录用户,但是您正在使用store方法进行操作(没有错误,只是惯例),store方法通常是用于存储数据(多么巧合!)