У меня простая система блога с таблицей posts
, tags
и posts_tags
. В таблице posts
и tags
оба имеют поля id
и content
, тогда как таблица posts_tags
имеет поля post_id
и tag_id
. Мои красноречивые модели:Eloquent has() in Many-To-Many
class Post extends \Illuminate\Database\Eloquent\Model
{
public function tags()
{
return $this->belongsToMany('Tag', 'posts_tags', 'post_id', 'tag_id');
}
}
и
class Tag extends \Illuminate\Database\Eloquent\Model
{
public function posts()
{
return $this->belongsToMany('Post', 'posts_tags', 'tag_id', 'post_id');
}
}
Теперь, насколько я понял, если я называю Post::has('tags')->get()
я должен получить сообщения, которые имеют по крайней мере один тег (который все делать). Но все, что я получаю, это пустой массив (который я получаю при вызове Tag::has('posts')->get()
). Что я делаю не так?