繁体   English   中英

Laravel 5中带有前缀的路由组中的路由资源

[英]Route resource in route group with prefix in Laravel 5

我正在尝试在路由组中创建路由资源:

Route::group(['middleware' => ['web', 'auth'], 'prefix' => 'template'], function() {
    Route::resource('template', 'TemplateController');

    Route::get('{template}/assign', 'blabla');
    Route::post('{template}/assign', 'blabla');

    Route::get('{template}/clone', 'blabla');
    Route::get('{template}/customizer', 'blabla');
});

但是现在我得到这样的路由: template.template.indextemplate.template.create等。

当我 Route::resource('template', 'TemplateController');更改名称时Route::resource('template', 'TemplateController'); Route::resource('/', 'TemplateController'); Route::resource('/', 'TemplateController'); ,路由如下所示: template..indextemplate..create等。

我确实有解决方案,但是接下来我需要创建另一个没有前缀的路由组。

(TL; DR;)我想知道如何使路由资源在具有前缀的路由组中工作并具有正确的路由名称(template.index,template.create等)。

您可以使用as定义路由名称。 您也可以分组使用:

Route::group(['as' => 'admin::'], function () {
    Route::get('dashboard', ['as' => 'dashboard', function () {
        // Route named "admin::dashboard"
    }]);
});

我假设您正在使用Laravel 5.1+,就像您在使用组前缀一样。 您可以在Laravel的路线部分中了解更多信息:

https://laravel.com/docs/5.1/routing#named-routes

https://laravel.com/docs/5.2/routing#named-routes

不知道在您的情况下应该如何做(我最好的猜测是在组中将其保留as空),因此您将不得不摆弄。 但是原理应该是相同的。

(我的最佳猜测):

Route::group(['middleware' => ['web', 'auth'], 'prefix' => 'template', 'as' => ''], function() {
    // stuff
});

如果命名组不工作你的情况,你可能必须设置as每个路线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM