Laravel 5.5路由问题

时间:2018-05-04 01:40:03

标签: php laravel laravel-5

我在laravel 5.5中的路线有这个奇怪的问题,每当我尝试打开我的一条路线时,我得到 @POST @Consumes("application/xml") @Produces("*/*") Response postBook(Book book); 错误

  

抱歉,找不到您要查找的页面。

所以我必须在我的404文件上移动该路线,这在实时应用中是不可能的。

尽管我知道我的路线,但我的web.php文件中没有任何功能,所有路线都是指控制器。

我试过了web.php,我收到了这个错误:

php artisan route:cach

任何想法?

1 个答案:

答案 0 :(得分:0)

有问题的路线是FrontendController @ showpage路线吗?如果是这样的话:

// Show single product
Route::get('/{productslug}', 'frontend\FrontendController@showproduct')->name('showproduct')->where('productslug', '[\w\d\-\_]+');
// Show single page
Route::get('/{slug}', 'frontend\FrontendController@showpage')->name('showpage')->where('slug', '[\w\d\-\_]+');

这两条路线似乎存在冲突,因为它们具有相同的where()子句,这意味着路线无法区分它们。

解决方案取决于{slug}和{productslug}之间的区别。目前,您只是说任何单词,数字,连字符和下划线的无限组合。

如果你无法用正则表达式区分它们,你应该创建一个新的路由,但这显然会改变URL。

// Show single product
Route::get('/product/{productslug}', 'frontend\FrontendController@showproduct')->name('showproduct')->where('productslug', '[\w\d\-\_]+');