Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 18.02.2017 17:46:50

Уместен ли такой вариант в роутах ?

подключил коробочную версию авторизации
решил сделать проверку на авторизованного пользователя и у же в зависимость от этого вызывать разные методы в контроллере
В файл роутев добавил код ниже. Вопрос насколько уместен такой вариант? Он работает.

Auth::routes();

Route::get('/', function() {
    $HomeController = new HomeController;
    if (Auth::check())
    {
           return $HomeController->allUsers();#for authorized users
    } else {
        return $HomeController->noAuth();# for unauthorized users
    }
});

Не в сети

#2 19.02.2017 01:45:30

Re: Уместен ли такой вариант в роутах ?

Отрывок из официальной документации...

Route middleware can be used to only allow authenticated users to access a given route. Laravel ships with an auth middleware, which is defined at Illuminate\Auth\Middleware\Authenticate. Since this middleware is already registered in your HTTP kernel, all you need to do is attach the middleware to a route definition:

Route::get('profile', function () {
    // Only authenticated users may enter...
})->middleware('auth');

Роут сработает, если юзер авторизовался...(middleware('auth') вернет true)

Не в сети

#3 19.02.2017 02:50:48

Re: Уместен ли такой вариант в роутах ?

KAMEHb пишет:

Отрывок из официальной документации...

Route middleware can be used to only allow authenticated users to access a given route. Laravel ships with an auth middleware, which is defined at Illuminate\Auth\Middleware\Authenticate. Since this middleware is already registered in your HTTP kernel, all you need to do is attach the middleware to a route definition:

Route::get('profile', function () {
    // Only authenticated users may enter...
})->middleware('auth');

Роут сработает, если юзер авторизовался...(middleware('auth') вернет true)


Да я понимаю но мне на одном роуте нужно вызвать разные методы в зависимости от авторизован пользователь или нет

Не в сети

#4 19.02.2017 09:14:06

Re: Уместен ли такой вариант в роутах ?

chirik пишет:

Вопрос насколько уместен такой вариант? Он работает.

Laravel даёт большую свободу выбора способа реализации. Такой вполне допустим. Кашерен ли, другой вопрос.

Небольшая шлифовка - логику убрать в контроллер:

Route::get('/', 'HomeController@check');

А в методе check() уже делать проверку.

Не в сети

#5 19.02.2017 11:18:29

Re: Уместен ли такой вариант в роутах ?

в роутах все-таки, наверное, неправильно проверки писать. Тогда уж лучше через конструктор контроллера

public function __construct()
{
    $this->middleware('auth');
}

и тогда уже расписывать логику

Не в сети

Подвал раздела