dptt66700
dptt66700
2019-06-19 14:41

Laravel中命名路由的一些用例是什么?

已采纳

After reading the documentation, I still only have a vague idea of what Named Routes are in Laravel.

Could you help me understand?

Route::get('user/profile', function () {
    //
})->name('profile');
Route::get('user/profile', 'UserProfileController@show')->name('profile');

It says:

Once you have assigned a name to a given route, you may use the route's name when generating URLs or redirects via the global route function

I don't understand what the second part of the sentence means, about generating URLs or redirects.

What would be a generated URL in the case of profile from the above example? How would I use it?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • douke6857 douke6857 2年前

    The best resource is right here : https://laravel.com/docs/5.8/routing#named-routes

    One of the common use case is in your views. Say your post request goes to a particular route, basically without named routes you can simply go like this to store a task

    action="/task"
    

    but say for example you need to update the route to /task/store , you will need to update it everywhere you use the route.

    But consider you used a named route

    Route::post('/task', 'TaskController@store')->name('task.store'); 
    

    With named routes you can use the route like this in your view:

    action="{{route('task.store')}}"
    

    Now if you choose to update your route, you only need to make the change in the routes file and update it to whatever you need.

    Route::post('/task/now/go/here', 'TaskController@store')->name('task.store');
    

    If you need to pass arguments to your routes, you pass it as arguments to route helper like this:

    route('task.edit', 1), // in resource specific example it will output /task/1/edit 
    

    All of the view examples are given you use blade templating.

    点赞 评论 复制链接分享
  • drvjlec1767 drvjlec1767 2年前

    this is how it looks it:

    named route sample name('store');:

    Route::get('/store-record','YourController@function')->name('store');
    

    store is the named route here. to call it use route('store')

    defining another type of route. this is not named route:

    Route::get('/store-record','YourController@function')
    

    you can access this route using {{ url('/store-record') }}

    hope this helps

    点赞 评论 复制链接分享
  • doujingjiao0015 doujingjiao0015 2年前

    After adding a name to a route, you can use the route() helper to create urls. This can now be used in your application.

    For instance, in your blade templates this may look like:

    {{ route('profile') }}
    

    This will use the application url and the route path to create a url.

    点赞 评论 复制链接分享

相关推荐