Laravel тот же маршрут, другой контроллер

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

Я попробовал что-то вроде этого:

Route::get('/', array('as'=>'home', function(){ if (!Auth::check()) { Route::get('/', array('uses'=>'homecontroller@index')); } else{ Route::get('/', array('uses'=>'usercontroller@home')); } })); 

Я также пытаюсь что-то вроде:

 return Controller::call('homecontroller@index'); 

но, похоже, это не для laravel 4

Я пробовал много других вещей, поэтому я думаю, что это скорее проблема неправильного понимания

Если у вас есть какая-либо подсказка

Спасибо за вашу помощь

Самое простое решение, о котором я могу думать, это:

 <?php $uses = 'HomeController@index'; if( ! Auth::check()) { $uses = 'HomeController@home'; } Route::get('/', array( 'as'=>'home' ,'uses'=> $uses )); 

Или вы можете просто направить индекс url / to method () и сделать там Auth :: check ().

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

 Route::get('/', array('as'=>'home', 'uses'=> (Auth::check()) ? "usercontroller@home" : "homecontroller@index" )); 
 // routes.php Route::get('/', 'homecontroller@index'); // homecontroller.php class homecontroller extends BaseController { public function index() { if (!Auth:: check()) { return $this->indexForGuestUser(); } else { return $this->indexForLoggedUser(); } } private function indexForLoggedUser() { // do whatever you want } private function indexForGuestUser() { // do whatever you want } } 

Вы должны попробовать что-то вроде:

 Route::get('/', array('as'=>'home', function(){ if (!Auth::check()) { Redirect::to('home/index')); } else{ Redirect::to('user/index')); } })); 

Таким образом, вы в основном перенаправляете пользователя на основе проверки Auth вместо определения дополнительного маршрута.

Или используйте фильтры маршрута

 Route::filter('authenticate', function() { if (!Auth::check()) { return Redirect::to('home/index'); } }); Route::get('home', array('before' => 'authenticate', function() { Redirect::to('user/index'); })); 

http://laravel.com/docs/routing#route-filters