资源控制器的 Laravel 命名路由
使用 Laravel 4.2,是否可以为资源控制器路由分配名称?我的路线定义如下:
Using Laravel 4.2, is it possible to assign a name to a resource controller route? My route is defined as follows:
Route::resource('faq', 'ProductFaqController');
我尝试像这样向路线添加名称选项:
I tried adding a name option to the route like this:
Route::resource('faq', 'ProductFaqController', array("as"=>"faq"));
但是,当我点击/faq 路线并将 {{ Route::currentRouteName() }}
放在我的视图中时,它会产生 faq.faq.index
只是faq
.
However, when I hit the /faq route and place {{ Route::currentRouteName() }}
in my view, it yields faq.faq.index
instead of just faq
.
推荐答案
当您使用资源控制器路由时,它会自动为其创建的每个单独的路由生成名称.Route::resource()
基本上是一个帮助方法,然后为您生成单独的路由,而不是您需要手动定义每个路由.
When you use a resource controller route, it automatically generates names for each individual route that it creates. Route::resource()
is basically a helper method that then generates individual routes for you, rather than you needing to define each route manually.
您可以在终端/控制台中查看通过在 Laravel 4 中输入 php artisan routes
或在 Laravel 5 中输入 php artisan route:list
生成的路由名称.您还可以在资源控制器文档页面 (Laravel 4.x | Laravel 5.x).
You can view the route names generated by typing php artisan routes
in Laravel 4 or php artisan route:list
in Laravel 5 into your terminal/console. You can also see the types of route names generated on the resource controller docs page (Laravel 4.x | Laravel 5.x).
有两种方法可以修改资源控制器生成的路由名称:
There are two ways you can modify the route names generated by a resource controller:
提供一个
names
数组作为第三个参数$options
数组的一部分,每个键都是资源控制器方法(索引、存储、编辑等).),并且值是您要为路线提供的名称.
Supply a
names
array as part of the third parameter$options
array, with each key being the resource controller method (index, store, edit, etc.), and the value being the name you want to give the route.
Route::resource('faq', 'ProductFaqController', [
'names' => [
'index' => 'faq',
'store' => 'faq.new',
// etc...
]
]);
指定 as
选项以定义每个路由名称的前缀.
Specify the as
option to define a prefix for every route name.
Route::resource('faq', 'ProductFaqController', [
'as' => 'prefix'
]);
这将为您提供诸如 prefix.faq.index
、prefix.faq.store
等路由.
This will give you routes such as prefix.faq.index
, prefix.faq.store
, etc.
相关文章