Я хочу создать промежуточное ПО для защиты маршрутов администратора в приложении laravel 5.2. user_type - это не поле в таблице пользователей в моей базе данных, а отдельная таблица:
User_type_id администратора - 4 Я сделал это промежуточное ПО:
class AdminMiddleware
{
public function handle($request, Closure $next)
{
$authedUserID = Auth::id();
$user = User::query()
->leftjoin('users_user_types as uut', 'uut.user_id', '=', 'users.id')
->where('uut.user_id',"=","$authedUserID")
->get(['users.*',
'uut.user_type_id as userType'])->first();
if ($user['userType'] !=4)
{
return redirect('/home');
}
return $next($request);
}
}
и поместите это в массив $ routeMiddleware в kernel.php:
'admin' => \App\Http\Middleware\AdminMiddleware::class
и это один из административных маршрутов, на котором я хочу применить свое промежуточное ПО:
Route::get('ptyadmin', 'AdminController@show')->middleware('admin');
Проблема в том, что когда я перехожу на этот маршрут с пользователем с правами администратора (user_type = 4) или обычным пользователем (user_type = 1), в обоих случаях он перенаправляется на / home !!
Почему это происходит и как это исправить?
auth
средняя война в пути? - person Mahbub   schedule 02.04.2017dd(Auth::id())
вAdminMiddleware
и проверить значение? - person Mahbub   schedule 02.04.2017