Я хочу написать свое собственное промежуточное программное обеспечение, чтобы проверить, является ли текущий пользователь членом определенной группы. Если да, пользователь может перейти на маршрут, если нет, то пользователь будет перенаправлен на другую страницу.Laravel Middleware -> получить зарегистрированного пользователя
Мое промежуточное программное обеспечение работает, но я не знаю, как получить идентификатор текущих пользователей. Я пробовал метод Auth :: user(), но без успеха.
Это мой Middleware:
namespace App\Http\Middleware;
use Closure;
use App\User;
use App\Usergroups;
use Illuminate\Http\Request;
class UserGroupMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next, $group = NULL)
{
$user_id = $request->user()->user_id;
$user = User::find($user_id);
$usergroup = Usergroups::find($user->benutzergruppe);
if($usergroup->slug == 'admin'){
return $next($request);
}
return redirect('/');
}
}
Что вы подразумеваете под 'но без success' в этом случае? Если пользователь вошел в систему, вы должны проверить его следующим образом: 'if (Auth :: check()) {print Auth :: user() -> id; } ' – Cyclonecode
Использование метода Auth :: user() ничего мне не дает. Пусто. Нет значений. Если я установил «benutzergruppe» в действительное значение, я могу пройти. Но даже, на мой взгляд, метод Auth :: user() не имеет значений. Ошибка не возникает, но если я попытаюсь получить доступ к существующему значению из пользовательской записи, он даст мое сообщение, что я пытаюсь получить свойство не-объекта – Brotzka