@GaserV

Как быть если нужен resource route и он может первым параметром принимать либо slug либо id?

Такая ситуация. У меня есть апи роут:

Route::resource('/products', 'ProductController')

И роута для запроса 2: /products/category_slug или /products/product_id

Как быть?
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 1
neuotq
@neuotq
Прокрастинация
Ну так бери строку и проверяй ее на число, грубо говоря:
Route::resource('/products', 'ProductController@showProduct')->name('showProduct');

//Где-то в ProductController
public function showProduct ($slug = '')
{
if (is_numeric($slug))
{
//по айди
$product = App\Product::find($slug);
return redirect()->route('showProduct', ['slug' => $product->slug]);;
}
else
{
//по слагу
$product = App\Product::findBySlug($slug); //ну допустим у нас есть этот метод и он ужасно засунут в саму модель, но да ладно
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы