参见此示例:
Route::group(array('prefix' => 'admin'), function()
{
//this resolves to admin/departments
Route::resource('departments', 'DepartmentsAdminController');
//this resolves to admin/users
Route::resource('users', 'UsersAdminController');
//this resolves to admin/companies
Route::resource('companies', 'CompaniesAdminController');
Route::resource('projects', 'ProjectsAdminController');
Route::resource('jobs', 'JobsAdminController');
Route::resource('milestones', 'MilestonesAdminController');
Route::resource('hours', 'HoursAdminController');
Route::resource('notes', 'NotesAdminController');
Route::resource('briefs', 'BriefsAdminController');
Route::resource('brief_items', 'BriefItemsAdminController');
});
Laravel根据前缀更改路由名称,在这种情况下,前缀是admin
所以现在所有的路由名称都以admin为前缀请参阅:
admin.users.create
admin.users.edit
但是,如果我想将前缀更改为其他前缀,我将不得不更改整个应用程序中的路由名称。
我想要的是保持路线名称为
users.create
users.edit
并且在不改变路由名称的情况下改变前缀。
有没有办法让资源控制器中的路由名称保持静态,并随时更改前缀
您可以按照我使用的给定代码示例进行操作。通过遵循此模型,您可以根据自己的喜好定义路线名称。
Route::group( [ 'prefix' => 'admin' ], function(){
Route::resource('pages', 'PageController', [
'names' => [
'show' => 'page',
'edit' => 'page.edit'
],
'only' => [
'show',
'edit'
]
]);
});
然后可以使用生成url。
URL::route('page', array($id))
用于生成/admin/page/{$id}的URL
我认为你的要求不是很合理。。。因此,您希望在组路由中使用命名路由。假设IF laravel允许您设置命名的组路由,如:Route::group(array('prefix' => 'admin', 'as'=>'something'), function() {...
,并且您可以始终执行重定向::路由('something/users')。那个么前缀选项并没有任何作用,为什么不直接使用前缀呢。
话虽如此,您可以使用action helper函数返回url,如下所示:action('NotesAdminController@index')
请参阅我的Laravel博客代码,其中我只是基于配置变量来实现这一点。
然而,我不确定这是否能解决您命名路线的问题。您应该能够使用"as"数组方法将路由命名为静态。
$adminGroup = Config::get('admin.group');
Route::group(array('prefix' => $adminGroup, 'as'=>'something'), function() { ... });
注意:我还没有确认你可以命名一个路由组(相对于其中的特定路由)。LMK它是如何为你工作的。
最后,我使用了一个配置变量,但没有什么可以阻止该表单由数据库驱动。