3

看这个例子:

    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        

并更改前缀而不更改路由名称。

有没有办法让资源控制器中的路由名称保持静态并随时更改前缀?

4

3 回答 3

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} 的 url

于 2014-12-24T10:59:06.090 回答
0

请参阅我的Laravel 博客代码,我在其中基于配置变量执行此操作。

但是,我不确定这是否会解决您命名路线的问题。您应该能够使用“as”数组方法将路由命名为静态的。

$adminGroup = Config::get('admin.group');
Route::group(array('prefix' => $adminGroup, 'as'=>'something'), function() { ... });

注意:我尚未确认您可以命名路由组(相对于其中的特定路由)。LMK 它如何为您工作。

最后,我使用了一个配置变量,但没有什么能阻止该表单被数据库驱动。

于 2013-08-31T15:18:30.333 回答
0

我认为你的要求不是很合理......所以你想要在组路线中命名路线。所以说 IF laravel 允许您设置命名组路由,例如: Route::group(array('prefix' => 'admin', 'as'=>'something'), function() {...并且您始终可以执行 Redirect::route('something/users')。那么前缀选项绝对没有任何作用,所以为什么不直接使用前缀。

话虽如此,您可以使用 action 辅助函数来返回 url,如下所示:action('NotesAdminController@index')

于 2013-08-31T05:29:01.840 回答