使用 Laravel 4.2,是否可以为资源 Controller 路由分配名称?我的路线定义如下:
Route::resource('faq', 'ProductFaqController');
我尝试向路线添加名称选项,如下所示:
Route::resource('faq', 'ProductFaqController', array("as"=>"faq"));
但是,当我点击/faq 路线并将
{{ Route::currentRouteName() }}
放在我的 View 中时,它会产生 faq.faq.index
而不仅仅是 faq
。 最佳答案
当您使用资源 Controller 路由时,它会自动为它创建的每个单独路由生成名称。 Route::resource()
基本上是一个辅助方法,然后为您生成单独的路由,而不是您需要手动定义每个路由。
您可以在终端/控制台中查看通过在 Laravel 4 中键入 php artisan routes
或在 Laravel 5 中键入 php artisan route:list
生成的路由名称。您还可以在资源 Controller 文档页面 ( Laravel 4.x | Laravel 5.x ) 上看到生成的路由名称的类型。
有两种方法可以修改资源 Controller 生成的路由名称:
names
数组作为第三个参数 $options
数组的一部分,每个键是资源 Controller 方法(索引、存储、编辑等),值是你想要给路由的名称。Route::resource('faq', 'ProductFaqController', [
'names' => [
'index' => 'faq',
'store' => 'faq.new',
// etc...
]
]);
as
选项为每个路由名称定义前缀。Route::resource('faq', 'ProductFaqController', [
'as' => 'prefix'
]);
这将为您提供诸如
prefix.faq.index
、 prefix.faq.store
等路线。 关于php - 资源 Controller 的 Laravel 命名路由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25290229/