К примеру, есть модель Рецепт, имеется связь belongsToMany c моделью Товаров (у товара есть column is_active в базе), во многих местах нужно получить рецепты и реляцию products (но, нужно показать ТОЛЬКО активные товары). Понятно, что можно написать WhereHas. Так - whereHas('products', function ($query) use ($productId) {
$query->where('is_active', true);
}); . Но писать данный WhereHas во всех местах неудобно. Насколько зашкварно, прописать сразу условие в реляции products - return $this->belongsToMany(Product::class, 'recipe_product')
->where('is_active', true); А при необходимости получения всех, whereHas products и добавить orWhere is_active = true. Что скажите, коллеги?
сделай еще связь по аналогии с products, типа activeProducts и там в билдере прям в связи добавь условие активности
Обсуждают сегодня