En utilisant l'ORM Eloquent, mes modèles sont configurés comme suit: Post
belongsToMany
Category
Post.php
public function categories()
{
return $this->belongsToMany('Category', 'posts_categories');
}
Je souhaite filtrer les messages par une colonne de la relation des catégories.
Je veux donc faire quelque chose comme:
$posts->where('categories.slug', '=', Input::get('category_slug'));
Mais cela ne fonctionne pas.
J'ai aussi essayé:
$with['categories'] = function($query){
$query->where('slug', '=', Input::get('category_slug'));
};
$posts::with($with)->get();
Mais je pense que c'est pour filtrer les catégories et non pas par la catégorie.
Quelqu'un peut-il me montrer le chemin?
Je ne peux pas accéder à ma boîte Vagrant pour le moment, mais je pense que cela devrait fonctionner:
$posts = Post::whereHas('categories', function($q)
{
$q->where('slug', '=', Input::get('category_slug'));
})->get();