Проблема маршрутизации Laravel 5.5 - PullRequest
0 голосов
/ 04 мая 2018

У меня странная проблема с моими маршрутами в laravel 5.5, каждый раз, когда я пытаюсь открыть один из моих маршрутов, я получаю 404 error

Извините, страница, которую вы ищете, не найдена.

поэтому мне нужно переместить этот маршрут поверх моего файла web.php, что невозможно в живом приложении.

Насколько я знаю свои маршруты, у меня нет никакой функции в моем файле web.php, и все мои маршруты относятся к контроллерам.

Я пытался php artisan route:cach, и я получил эту ошибку:

λ php artisan route:cach
Route cache cleared!

In Route.php line 880:

  Unable to prepare route [api/user] for serialization. Uses Closure.

Есть идеи?

1 Ответ

0 голосов
/ 04 мая 2018

Является ли проблемный маршрут маршрутом 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\-\_]+');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...