【发布时间】:2017-12-10 01:45:06
【问题描述】:
我在 Laravel 中的路由有问题,我正在学习一个教程,我们在 web.php 文件中列出了这些路由
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/blog', 'BlogController@index')->name('blog');
Route::get('/blog/create', 'BlogController@create');
Route::post('/blog/store', 'BlogController@store');
Route::get('/blog/{id}', 'BlogController@show');
Route::get('/blog/{id}/edit', 'BlogController@edit');
Route::patch('/blog/{id}', 'BlogController@update');
Route::delete('/blog/{id}', 'BlogController@destroy');
Route::get('/blog/bin', 'BlogController@bin');
问题出在通往 blog/bin 的最后一条路线上,如果我将其放在下方,它将无法正常工作,但是在教程中我们已将其移至其他路线的顶部,然后它工作正常,讲师说存在一些冲突路线,最后一条路线需要在顶部才能工作,但根本没有解释为什么?任何人都可以更详细地解释一下,因为我真的刚刚开始使用 Laravel...
【问题讨论】:
-
你可以看到你已经用相同的
get方法定义了两条路由,签名是相同的,所以当它试图在你的情况下找到合适的路由时,它的 /bin 但是当 laravel 到达 /{ id} 它以 bin 作为参数,因为两者具有相同的签名。
标签: php laravel-5 laravel-5.4 laravel-routing