见这个例子:
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
并更改前缀而不更改路线名称。
有没有办法让资源控制器中的路由名称保持静态,并随时更改前缀?
答案 0 :(得分:1)
您可以按照我使用的给定代码示例进行操作。按照此模型,您可以根据需要定义路径名称。
Route::group( [ 'prefix' => 'admin' ], function(){
Route::resource('pages', 'PageController', [
'names' => [
'show' => 'page',
'edit' => 'page.edit'
],
'only' => [
'show',
'edit'
]
]);
});
然后您可以使用。
生成网址URL::route('page', array($id))
生成网址为/ admin / page / {$ id}
答案 1 :(得分:0)
我认为你所要求的并不是很合理...所以你想要在一个小组路线中命名路线。所以说IF laravel允许你设置命名组路由,如:
Route::group(array('prefix' => 'admin', 'as'=>'something'), function() {...
你总是可以做Redirect :: route('something / users')。然后前缀选项绝对没有用处,所以为什么不使用前缀。
话虽如此,你可以使用动作帮助函数来返回url:action('NotesAdminController@index')
答案 2 :(得分:0)
请参阅我的Laravel blog code,我根据配置变量执行此操作。
但是,我不确定是否会解决您命名路线的问题。您应该能够使用“as”数组方法将路由命名为static。
$adminGroup = Config::get('admin.group');
Route::group(array('prefix' => $adminGroup, 'as'=>'something'), function() { ... });
注意:我还没有确认您可以命名路由组(与其中的特定路由相对)。 LMK它是如何为你工作的。
最后,我使用了一个配置变量,但没有什么能阻止该表单被数据库驱动。