【发布时间】:2018-09-19 17:30:58
【问题描述】:
我想在一个组中显示与该组具有相同标签的所有文章。 例如:
该组有 as 标签:laravel、php、html。然后我想让所有的文章,它有完全相同的标签。所以所有标签为 laravel、php、html 的文章。
并非所有文章都只有一个相同的标签,只有文章具有所有相同的标签。 $tagIdArray 是组的标签。
我试过这段代码:
$tagIdArray = [2,3,4];
$article = Article::with('comments', 'tags')->whereIn('privacy', [1, 2])->where('status', 1)
->where(function ($query) use ($tagIdArray) {
return $query->tags->pluck('id')->all() == $tagIdArray;
})
->latest()->paginate(15);
但我总是收到错误消息:
Undefined property: Illuminate\Database\Eloquent\Builder::$tags
后模型
public function tags()
{
return $this->morphToMany('App\Tag', 'taggable')->withTimestamps();
}
标签模型
public function taggable()
{
return $this->morphTo();
}
可标记模型
public function tag()
{
return $this->belongsTo('App\Tag');
}
编辑:
例如,如果我显示所有组并且我想使用文章的随机图像作为组图像。我如何最好地实现这一点?
@foreach ($groups as $group)
{{$group->name}}
<img src="-----load random picture from articles that is in this group------" alt="" />
@endforeach
【问题讨论】:
-
你能发布文章和标签模型吗?
-
我已经更新了我的问题