我使用插件TokenInput来执行搜索标记。 我有两张桌子,有很多关系。表:故事,标签和数据透视表:story_tag。我执行搜索查询:
$term = request('q');
$tags = \App\Tag::where('slug', 'LIKE', '%' . $term . '%')->get();
return response()->json($tags->toArray());
它在工作。现在,我想计算数据透视表story_tag中的标签数量,并显示结果如下:
tagNamea - 69
tagNameb - 9
...
我尝试了很多搜索,但没有达到预期效果。怎么做?有帮助吗?感谢。
更新
关系模型:
故事模型:
public function tags()
{
return $this->belongsToMany('App\Tag');
}
标记模型:
public function stories()
{
return $this->belongsToMany('App\Story');
}
答案 0 :(得分:0)
你需要有这样的关系
public function stories()
{
return $this->belongsToMany('App\Story', 'story_tag', 'tag_id', 'story_id');
}
我不知道你需要什么样的回应,但你必须像上面提到的关系
答案 1 :(得分:0)
每当你有一个雄辩的集合,你可以在该集合上使用 count 方法。
例如:
$count = $tags->count();
如果 $ tags 是一个集合,那么您将获得 $ count 中的代码数量。
答案 2 :(得分:0)
您可以使用moment
。 count()方法将计算集合的所有结果。