Хорошо ..
У меня есть квест "может быть, простой". У меня есть модель рецепта с отношением toMany к модели ингредиентов и модели тегов ..
Мне нужен способ отфильтровать рецепты с тегом c (здесь нет проблем) .. и я также хотите отфильтровать (исключить) рецепты, в которых есть определенные c ингредиенты ..
$recipe = Recipe::whereHas('tags', function ($q) use ($tagId, $maxCal) {
$q->where('tag_key', $tagId);
})
->whereDoesntHave('ingredients', function ($q) use ($excludeIngredientGroups) {
$q->whereNotIn('ingredient_group_key', $excludeIngredientGroups);
})
$ excludeIngredientGroups - это массив.
sql ошибка ..: ингредиент в неизвестном столбце .ingredient_group_key 'в' where clause '
class Recipe extends Base
{
protected $table = "recipes";
public function ingredients()
{
return $this->hasMany('App\Models\RecipeIngredient', 'recipe_id', 'id')
}
class RecipeIngredient extends Base
{
protected $table = "recipes_ingredients";
public function ingredient(){
return $this->belongsTo('App\Models\Ingredient', 'ingredient_key', 'key');
}
public function recipe(){
return $this->belongsTo("\App\Models\Recipe","recipe_id","id");
}
имеет ли это смысл?