我有一个数据库,其中: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'
。我该如何解决?
答案 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
方法通常是用于存储数据(多么巧合!)