A small new feature in Laravel 5.1 - just for those who want to group their routes a little more properly. Now we can add a prefix not only to routes, but to the route groups as well.
The old way
Let's imagine we have a route group like this:
Route::group(['prefix' => 'user'], function()
{
Route::get('/', function()
{
return view('user/main');
});
Route::get('profile', function()
{
return view('user/profile');
});
});
Next step - we want to add names to the separate routes, to use them by names everywhere in the code:
Route::group(['prefix' => 'user'], function()
{
Route::get('/', ['as' => 'user.main', function()
{
return view('user/main');
}]);
Route::get('profile', ['as' => 'user.profile', function()
{
return view('user/profile');
}]);
});
So, at this point we have two named routes - user.main and user.profile, which we can use like this:
{{ link_to_route('user.main', 'User main') }}
{{ link_to_route('user.profile', 'User profile') }}
New in Laravel 5.1 - named groups
Now, to the point - a new feature of Laravel 5.1 (not 5.0): we can assign that user. prefix to the whole group, with the same "as" parameter. Like this:
Route::group(['prefix' => 'user', 'as' => 'user.'], function()
{
Route::get('/', ['as' => 'main', function()
{
return view('user/main');
}]);
Route::get('profile', ['as' => 'profile', function()
{
return view('user/profile');
}]);
});
The usage from views or from other files doesn't change - it's just more convenient grouping of routes in routes.php file.
Notice another detail - we are not limited to dots at the end of the group name. We can put whatever symbol we want there: colon, comma, dash etc. Like this:
Route::group(['prefix' => 'user', 'as' => 'user-'], function()
{
Route::get('/', ['as' => 'main', function()
{
return view('user/main');
}]);
});
And then we will use this route like this:
{{ link_to_route('user-main', 'User main') }}
Not a huge win, but just for the sake of structure.
No comments or questions yet...