Laravel 4: две разные страницы просмотра для одного URI, основанного на статусе auth

Недавно я начал развиваться с Laravel 4, и у меня возник вопрос о маршрутах.

Для '/' я хотел бы иметь две разные страницы просмотра, основанные на статусе авторизации пользователя.

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

Чтобы добиться этого, я играл с фильтром «auth» и «guest», но мне не повезло. // app / routes.php

// route for logged in users Route::get('/', array('before' => 'auth', function() { return 'logged in!'; })); // for normal users without auth Route::get('/', function() { return 'not logged in!'; })); 

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

Возможно, это что-то, что должно быть обработано в контроллере? Если бы кто-то мог указать мне в правильном направлении, это было бы очень полезно.

Один (простой) вариант должен был бы использовать функцию Auth::check() чтобы проверить, вошли ли они в систему:

 Route::get('/', function() { if (Auth::check()) { return 'logged in!'; } else { return 'not logged in!'; } }); 

Если хотите, вы сможете использовать ту же логику в контроллере.

EDIT – использование фильтров

Если вы хотите сделать это в фильтре, вы можете использовать что-то вроде этого:

 Route::filter('auth', function() { if (Auth::guest()) { return Redirect::to('non-admin-home'); } }); 

а затем определить второй маршрут (или действие в вашем контроллере) для обработки обычных пользователей. Хотя это означало бы другой URL-адрес страницы, который я не думаю, что вы хотите.

ПОЛНЫЙ КОНТРОЛЛЕР-НАПРАВЛЯЮЩИЙ ПОТОК: (сохранение routes.php clean)

routes.php

 Route::controller('/', 'IndexController'); 

IndexController.php

 class IndexController extends BaseController { // HOME PAGE public function getIndex() { if (Auth::check()) { return View::make('admin.home'); } else { return View::make('user.home'); } } }