我有这个代码
Route::get('posts/{id}/postedit','PostController@postedit');
Route::post('posts/{id}/postupdate','PostController@postupdate');
Route::get('posts/{id}/postdelete','PostController@postdelete');
Route::get('/{slug}', [
'uses' => 'SiteController@singlepost',
'as' => 'site.single.post'
]);
Route::get('/{id}', [
'uses' => 'PendaftaranAlumniController@test',
'as' => 'test',
]);
所以问题来了,当我像这样运行时它Route::get('/{slug}'
它工作正常但Route::get('/{id}'
它不起作用
否则当我把 Route::get('/{id}
放在顶部时它工作正常,但 Route::get('/{slug}'
不再工作。
我该如何解决这个问题?
答案 0 :(得分:1)
因为 /{slug}
和 /{id}
被 Laravel 视为相同,所以路由 /{slug}
和 /{id}
都将指向之前定义的任何路由。
你可以照原样使用它,你需要告诉 Laravel 这两条路由有任何不同,这样 Laravel 才会区别对待。
Route::get('singlepost/{slug}', [
'uses' => 'SiteController@singlepost',
'as' => 'site.single.post'
]);
Route::get('test/{id}', [
'uses' => 'PendaftaranAlumniController@test',
'as' => 'test',
]);