Laravel路由与资源路由冲突


Laravel route conflict with resource routes

我在本地mac pc上托管的项目中使用此路由,它正在工作,但是当我将其上传到Ubunto服务器路由冲突发生时。

Route::group(['prefix'=>'report', 'middleware' => ['auth','session', 'complete_profile']], function() {
    Route::get('/get_query', 'ReportController@get_queries');
});
Route::group(['middleware' => ['auth','session', 'complete_profile']], function(){
    Route::resource('report','ReportController');
});

例如,当我在在线ubunto服务器上使用形式第一路由report/get_query时,它会转到该控制器的show($id)方法,但在本地它工作。我该怎么做呢?

Route::group(['prefix'=>'report', 'middleware' => ['auth','session', 'complete_profile']], function() {
    Route::resource('/','ReportController',['except' => ['show']]);
    Route::get('/get_query', 'ReportController@get_queries');
});

资源路由有http方法的预定义路由。例如,报告资源有路由:

Route::get('report/{report}','ReportController@show');

解决方案是排除一些方法(路由来自rest资源),或者创建一些不会与路由资源冲突的路由。

你可以通过运行命令查看你注册的路由:

 php artisan route:list

还有一个route group for report就足够了,只要在resource route中加上'/'就可以了。