2013-06-20 2 views
1

Я попытался это:Laravel другой контроллер для маршрута, если он аутентифицирован?

Route::get('/', '[email protected]'); 
Route::group(array('before' => 'auth'), function(){ 
    Route::controller('/',   'HomeController'); 
}); 

Но это всегда требует логин.

Я хочу, чтобы PageController @ getIndex вызывался при посещении '/' при входе в систему и HomeController (@getIndex) в противном случае.

Я знаю, что могу настроить перенаправление, но я бы хотел просто обработать все это в маршрутизации.

+0

Да, я не уверен, что если этот путь возможен. У вас есть два местоположения, назначенные для одного и того же местоположения маршрута, и объявляйте, что вы хотите auth до достижения этого местоположения. Вы можете использовать вложенные представления на домашней странице и потребовать аутентификацию Auth :: check() перед входом в систему, а также на обычную домашнюю страницу или что-то еще. В противном случае я не знаю, сможете ли вы направлять 2 отдельных страницы в одно и то же место. – SamSquanch

ответ

1

Вам нужно настроить свой собственный аутентификации фильтра

if(!Auth::check()){ 
    return Route::get('/', '[email protected]'); 
} else { 
    Route::controller('/',   'HomeController'); 
} 
+0

Следует иметь в виду, что это не сработает, если вы используете кеширование маршрута в более поздних версиях Laravel (я считаю, что это 5.1 и выше с этой функцией). – Dwight