Php Laravel-路由模式不能多次引用变量名

Php Laravel-路由模式不能多次引用变量名,php,laravel,routes,Php,Laravel,Routes,我正在处理一个遗留代码,一个使用Laravel 5.2构建的项目,我遇到了一个错误: Route pattern "/api/v0/taxonomy/{term}/{{term}}" cannot reference variable name "term" more than once. 这条路线: /post/106 这是我的路线: Route::group(['prefix' => 'api'], function() { Route::group(['prefix' =

我正在处理一个遗留代码,一个使用Laravel 5.2构建的项目,我遇到了一个错误:

Route pattern "/api/v0/taxonomy/{term}/{{term}}" cannot reference variable name "term" more than once.
这条路线:

/post/106
这是我的路线:

Route::group(['prefix' => 'api'], function() {
    Route::group(['prefix' => 'v0'], function () {
        Route::get('route/{a?}/{b?}/{c?}/{d?}', 'DynamicRouteController@resolve');
        Route::get('id/{id}', 'DynamicRouteController@resolveId');
        Route::get('search', 'SearchController@search');
        Route::resource('taxonomy/{term}','TaxonomyController');
    });
});

不确定,为什么会出现此错误?

当您将路由定义为资源时,Laravel似乎会创建资源所需的所有路由:获取、发布、修补、删除

所以您只需要定义
Route::resource('taxonomy','TaxonomyController')
路由::资源('taxonomy.post','TaxonomyPostController')


选中

您只需按如下方式重命名路由参数:

Route::resource('taxonomy/{term}','TaxonomyController', ['parameters'
=> ['{term}' => 'your_name']]);
小心点!!!!。你需要插入括号。这将导致错误的结果:

Route::resource('taxonomy/{term}','TaxonomyController', ['parameters'
=> ['term' => 'your_name']] );
注意: “your_name”不应与参数相同,因此此方法会出错 结果


是的,每天晚上睡觉前。当拉威尔不仅仅是一个框架,更是一个宗教:)你是对的,但你应该在答案中解释这类事情,而不是在评论的答案中。。。我的意思是,如果从链接中提取信息来回答厚颜无耻的评论是值得的,那么从链接中提取信息来回答合法的答案是值得的。是的,拉威尔是一个宗教,泰勒·奥特威尔是它的预言家:)我在类App\Http\Controllers\ProjectsController中得到了
无法解决的依赖解析[Parameter#0[$id]],类似的例子是:web.php()和ProjectsController()。请告诉我好吗?在你的控制器构造方法中,你不能使用$id。测试:
Route::resource('projects/{project}','ProjectsController',['parameters'=>['{project}'=>'id',],])@maan81
Route::resource('taxonomy/{term}','TaxonomyController', ['parameters'
    => ['{term}' => 'term']});