protected function loadTags() { $tags = BlogTag::orderBy('name'); if ($this->property('parent') == '') { $tags->whereExists(function ($query) { $query->select(DB::raw(1))->from('radiantweb_blog_post_tags')->join('radiantweb_blog_posts', 'radiantweb_blog_posts.id', '=', 'radiantweb_blog_post_tags.post_id')->where('radiantweb_blog_posts.published', 1)->whereRaw('radiantweb_blog_tags.id = radiantweb_blog_post_tags.tag_id'); }); } else { $tags->whereExists(function ($query) { $parent = $this->property('parent'); $query->select(DB::raw(1))->from('radiantweb_blog_post_tags')->join('radiantweb_blog_posts', 'radiantweb_blog_posts.id', '=', 'radiantweb_blog_post_tags.post_id')->where('radiantweb_blog_posts.published', 1)->where('radiantweb_blog_posts.parent', $parent)->whereRaw('radiantweb_blog_tags.id = radiantweb_blog_post_tags.tag_id'); }); } return $tags->get(); }