Как правильно проверять наличие записей в БД?

Начал изучать Laravel и столкнулся с одной проблемкой. Имеется следующий код
/**
* @param int $category_id
* @param int $product_id
*
* @return JsonResponse
*/
public function destroy(int $category_id, int $product_id): JsonResponse
{
    $user = Auth::getUser();

    $category = $user->categories()->find($category_id);

    if (!$category) {
        return response()->json([
            'message' => 'Category not found.'
        ], 404);
    }

    $product = $category->products()->find($product_id);

    if (!$product) {
        return response()->json([
            'message' => 'Product not found.'
        ], 404);
    }

    $product->delete();

    return response()->json([
        'message' => 'Product deleted.'
    ], 200);
}


Вопрос в том, как упростить все проверки на существование записей с соответствующими id. Текущий вариант мне не нравится своей многословностью и тем, что подобный код дублируется еще в нескольких экшенах. В Symfony я бы использовал @ParamConverter, но в Laravel вроде-бы нет такой мегаудобной штуки.
  • Вопрос задан
  • 316 просмотров
Решения вопроса 1
v_decadence
@v_decadence
Route Model Binding
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Есть тут такая штука =)

public function destroy(Category $category, Product $product)


Но есстественно магически находить по категориям юзера она не будет, уж такой сильной магии тут нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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