Tengo la ruta a continuación en web.php, la primera ruta siempre funciona, pero la segunda no si uso la URL como

ads/mobiles

Entonces la función check_if_category se ejecuta bien. Pero uso url como

ads/lahore/mobiles

En este caso redirige a la página 404.

Route::get('ads/all', 'AdControllerWithoutAuth@all_ads')->name('route_all_ads');
Route::get('ads/{location?}{category?}{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');

También he trabajado así

Route::get('ads/all', 'AdControllerWithoutAuth@all_ads')->name('route_all_ads');
//Route::get('ads/{location?}', 'Categories@check_if_category')->name('route_f_category_page');
//Route::get('ads/{location?}{category?}', 'Categories@check_if_category')->name('route_f_category_page');
Route::get('ads/{location?}{category?}{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');

Pero sin éxito. Gracias por la ayuda de antemano.

1
Habib Qadoos 15 ene. 2018 a las 10:37

3 respuestas

La mejor respuesta

Debe agregar / entre estos parámetros o Laravel los verá como una cadena larga.

Route::get('ads/{location?}/{category?}/{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
3
Jerodev 15 ene. 2018 a las 07:38

Utilizar separator

Route::get('ads/{location?}/{category?}/{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
1
Sohel0415 15 ene. 2018 a las 07:38

Agregue / a la ruta URI:

Route::get('ads/{location?}/{category?}/{keyword?}', 'Categories@check_if_category')->name('route_f_category_page');
2
Alexey Mezenin 15 ene. 2018 a las 07:38
48258667