在 laravel 5.4 中添加管理员角色
Add Admin role in laravel 5.4
我有一个数据库,其中:管理员有 True isAdmin 属性,但其他用户有 false isAdmin 属性.
我想检查登录的用户是 Admin 还是 not,方法是将他们重定向到我的应用程序中的不同页面。我在 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'
。我该如何解决?
您缺少一个 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
请求,而你只是想 log 一个用户 in?
有点混乱。我可以从您的代码中看出您正在尝试让用户登录,但是您是在 store
方法中进行的(没有错,只是约定),store
方法通常是用于存储数据(多么巧合!)
我有一个数据库,其中:管理员有 True isAdmin 属性,但其他用户有 false isAdmin 属性.
我想检查登录的用户是 Admin 还是 not,方法是将他们重定向到我的应用程序中的不同页面。我在 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'
。我该如何解决?
您缺少一个 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
请求,而你只是想 log 一个用户 in?
有点混乱。我可以从您的代码中看出您正在尝试让用户登录,但是您是在 store
方法中进行的(没有错,只是约定),store
方法通常是用于存储数据(多么巧合!)