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

时间:2019-06-19 14:41:54

标签: php laravel routing

在阅读documentation之后,我仍然对Laravel中的“命名路线”一无所知。

您能帮我理解吗?

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

它说:

  

为给定路由分配名称后,可以在生成URL或通过全局路由功能重定向时使用该路由的名称

我不明白句子第二部分关于生成URL或重定向的含义。

在上述示例中,profile生成的URL是什么?我将如何使用它?

3 个答案:

答案 0 :(得分:3)

在为路由添加名称后,可以使用route()帮助程序来创建URL。  现在可以在您的应用程序中使用它。

例如,在刀片模板中,它可能类似于:

{{ route('profile') }}

这将使用应用程序URL和路由路径来创建URL。

答案 1 :(得分:3)

最好的资源就在这里:https://laravel.com/docs/5.8/routing#named-routes

您认为最常见的用例之一。假设您的发帖请求转到特定的路线,基本上没有命名的路线,您可以像这样简单地去存储任务

action="/task"

但是说,例如,您需要更新到/ task / store的路由,则需要在使用该路由的任何地方更新它。

但是请考虑您使用的是命名路由

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

使用命名路线,您可以在视图中使用以下路线:

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

现在,如果您选择更新路线,则只需在路由文件中进行更改,然后将其更新为所需的任何内容即可。

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

如果需要将参数传递给路由,可以将其作为参数传递给路由助手,如下所示:

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

所有视图示例均提供了使用刀片模板的功能。

答案 2 :(得分:1)

这是它的外观:

命名路线示例Waiting TE Optimization Acceptance

name('store');

Route::get('/store-record','YourController@function')->name('store'); 是此处的命名路由。用store

来称呼它

定义另一种路线。这没有命名为路线:

route('store')

您可以使用Route::get('/store-record','YourController@function')

访问此路线

希望这会有所帮助