使用 Laravel 4.2,是否可以为资源 Controller 路由分配名称?我的路由定义如下:
Route::resource('faq', 'ProductFaqController');
我尝试像这样向路由添加名称选项:
Route::resource('faq', 'ProductFaqController', array("as"=>"faq"));
但是,当我点击/faq 路由并在我的 View 中放置 {{ Route::currentRouteName() }}
时,它会生成 faq.faq.index
只是常见问题解答
。
最佳答案
当您使用资源 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/