je le dépôt suivant Products
et chaque produit peut avoir beaucoup Categories
et beaucoup Bidders
Laravel Référentiels whereHas - plusieurs
Ce que je suis en train de réaliser est la suivante (sans dépôt)
$products = Products::whereHas('categories', function ($category) {
})->whereHas('bidders', function ($bidder) {
})->get();
Cette fonctionne bien, cependant, j'essaie de faire en sorte que les dépôts sont en place et vous pouvez toujours faire la requête whereHas
, donc dans mon référentiel j'ai créé une méthode:
public function whereHas($attribute, \Closure $closure = null)
{
return $this->model->whereHas($attribute, $closure);
}
Cela fonctionne bien, mais seulement si je me sers un d'entre eux dans ma requête principale, alors que si j'utilise plusieurs:
$products = $this->products->whereHas('categories', function ($category) {
$category->where('id', '=', 1);
})->whereHas('bidders', function($bidders) {
})->get();
Je reçois l'erreur suivante:
Unknown column 'has_relation'
Column not found: 1054 Unknown column 'has_relation' in 'where clause' (SQL: select * from
products
where exists (select * fromcategories
inner joinproducts_categories
oncategories
.id
=products_categories
.categories_id
whereproducts
.id
=products_categories
.products_id
andid
= 1) and (has_relation
= sections))
Le problème que je vois, c'est qu'il renvoie une collection d'éléments sur le premier whereHas
ce qui signifie qu'il ne peut pas calculer le second. Des idées sur où je vais mal?