У меня есть статьи, которые могут содержать разные теги.Например, 5 штук: (php, html, css, laravel, js) И у меня есть группы, которые также могут содержать разные теги.Например 4 штуки: (laravel, php, html, css)
Я уже определил отношения, и это работает.Чего мне до сих пор не хватает, так это связи статьи с группой.
В Articlecontroller я использую это так:
$article->groups()->sync($group->id);
Article Model
public function groups()
{
return $this->belongsToMany('App\Group');
}
public function tags()
{
return $this->morphToMany('App\Tag', 'taggable');
}
Tag Model
public function articles()
{
return $this->morphedByMany('App\Article', 'taggable');
}
public function groups()
{
return $this->morphedByMany('App\Group', 'taggable');
}
Модель группы
public function tags()
{
return $this->morphToMany('App\Tag', 'taggable');
}
public function articles()
{
return $this->belongsToMany('App\Article');
}
Контроллер
$groups = $user->groups()->latest()->with('tags')->paginate(20);
$mostvotedarticle = Article::where('type', 4)->whereIn('privacy', [1, 3])->orderByVotes()->first(); //show only article with the same tags
$imagearticle = Article::with('comments')->whereIn('type', [4, 5])->where('status', 1)->latest()->paginate(30); //show only articles with the same tags
Теперь я хотел бы сравнить теги групп и теги сообщений.Если сообщения имеют те же теги, что и группа, я хочу отобразить сообщения.