I have recently got into developing with Laravel 4 and I had a question about routes.
For '/', I would like to have two different view pages based on the user's auth status.
If a user is logged in and is viewing '/', I would like to show them a view with admin controls and when a user is viewing '/' as a regular user without logging in, I would like to offer a general information view.
To accomplish this, I've been playing around with filter 'auth' and 'guest' but am having no luck. // 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!';
}));
The above code works to a point where the as a logged in user, I am able to display the proper response but after logging out, I cannot see the proper response as a regular user.
Perhaps this is something that should be handled in the controller? If someone could point me in the right direction, it would be really helpful.
One (simple) option would be to use the
Auth::check()
function to see if they are logged in:You would be able to use the same logic in the controller if you so wish.
EDIT - using filters
If you wanted to do this in the filter, you could use something like this:
and then defining a second route (or action in your controller) to handle the normal users. Though this would mean a different url for the page, which I don't think is what you want..
COMPLETE CONTROLLER-BASED ROUTING FLOW: (keeping
routes.php
clean)routes.php
IndexController.php