2013-04-19 1 views
0

В Laravel 4, вы назначаете действия контроллера маршрутам используя что-то вдоль линии это:Как вы можете вернуть действие контроллера на маршрут в Laravel 4, который зависит от условий?

Route::any('/', '[email protected]'); 

Однако в моем приложении я хочу использовать другой контроллер и действие, в зависимости от того, или не зарегистрирован пользователь . в

я пытался что-то вроде этого, но это не работает:

Route::any('/', function() { 
    if (Auth::check()) { 
     return '[email protected]'; 
    } else { 
     return '[email protected]'; 
    } 
}); 

решение я принял на это, но я чувствую, что должен быть правильный способ для достижения этой цели, особенно в instanc эс, где больше, чем просто для входа-проверка происходит:

Route::any('/', (Auth::check() ? '[email protected]' : '[email protected]')); 

ответ

2

if заявления должно быть вне группы маршрута, если вы хотите, чтобы показать другую домашнюю страницу для пользователя, вошедший в

if (Auth::check()) 
{ 
    Route::any('/', '[email protected]'); 
} 
else 
{ 
    Route::any('/', '[email protected]'); 
} 
.

Кроме того, вы можете посмотреть, как реализовать какой-либо фильтр проверки подлинности, а затем перенаправить без регистрации пользователей на другую страницу.

+0

Ах, идеальный, глупый, я не видел этого. Это предназначалось только для домашней страницы, поэтому фильтр аутентификации используется для перенаправления на страницу входа во все страницы сайта. Я полагаю, что я мог бы написать второй фильтр проверки подлинности только для этого экземпляра, но ваше решение отлично справляется с этой задачей. – Dwight

Смежные вопросы