我需要根据应用程序中的角色重定向用户。在MySQL中,我添加了" isAdmin" Users表中的列,用于检查用户是否为admin。我想出的唯一解决方案是根据用户的类型在同一刀片上呈现html。 例如。
@if(Auth::user()->isAdmin == 1)
<p>Hello, Admin</p>
//other html for admin
@else
//other html for users
有没有更好的方法来实现更美观和更有效的代码,因为这看起来很混乱? 我使用的是使用Laravel默认身份验证系统的软件包(https://github.com/acacha/adminlte-laravel)。
我想在用户登录过程中将用户重定向到两个不同的刀片,比如homeUsers.blade.php和admin.blade.php。
答案 0 :(得分:2)
逻辑就在这里:最好的方法是创建两个表users
和另一个roles
,并将role_id
作为外键放在users表中。然后创建一个角色belongsTo
用户的关系。
但是,在您的情况下,如果您有两个视图,并且您希望为其他用户显示一个视图,请按照以下方法显示。
创建两个您想要在案例中使用的视图1)admin 2)homeUsers
@if(Auth::user()->isAdmin == 1)
@include('admin') //admin.blade.php
@else
@include('homeUsers') //homeUsers.blade.php
答案 1 :(得分:1)
我不确定您使用的是什么版本的Laravel,但这似乎应该在您的中间件中。
在中间件中查看RedirectIfAuthenticated.php
。然后,您可以执行以下操作。
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
if (Auth::user()->role == 'Admin')
{
return redirect('/admin');
}
else
{
return redirect('/home')
}
}
return $next($request);
}