Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here
Tutorial Free

Laravel 5.1: Names for route groups

June 22, 2015
2 min read
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.

Enjoyed This Tutorial?

Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.

Comments & Discussion

No comments yet…

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.