Я использую, чтобы проверить, является ли пользователь администратором промежуточного программного обеспечения, но с 5.3 его невозможно. Я использовал этот код раньше:Laravel 5.3 middleware (Auth :: user()) = null
if(Auth::guest()) //If the user is just a guest
{
return redirect("/");
}
if(Auth::user()->isAdmin == 1) //If the user is logged in and he is the Admin
{
return $next($request);
}
else //If the user is not the admin he can't see this page
{
return redirect("/");
}
}
В настоящее время я пробовал ниже, не повезло. Может ли кто-нибудь указать мне в правильном направлении, как мы можем проверить, является ли пользователь администратором или обычным пользователем?
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request){
if ($request->user()->role == 'Admin'){
return "yes";
}
}
return $next($request);
}
В вашей модели пользователя есть поле isAdmin? Также проверьте, проверяет ли ваша база данных, было ли поле установлено на 1 для пользователя, с которым вы пытаетесь войти в систему. – pseudoanime
'if ($ request-> user() -> role = 'Admin') {' это ключ здесь ... вам нужно использовать '==', удалить вопрос после. – Kyslik
Спасибо, пропустил это, поскольку мне пришлось написать то, что я пробовал. Тем не менее, он говорит, что вам нужно назначить значение по умолчанию, если пользователь не подписан. Я также исправил код благодаря – master