Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在laravel中搜索属于标签的所有文章 文章模式 标签模型 数据透视表_Mysql_Laravel_Laravel 5_Laravel 5.3 - Fatal编程技术网

Mysql 如何在laravel中搜索属于标签的所有文章 文章模式 标签模型 数据透视表

Mysql 如何在laravel中搜索属于标签的所有文章 文章模式 标签模型 数据透视表,mysql,laravel,laravel-5,laravel-5.3,Mysql,Laravel,Laravel 5,Laravel 5.3,我想搜索所有使用标签名称的书籍。我该怎么做 我的解决方案 这是我的解决方案,但我觉得不好。有人有其他解决办法吗?多谢各位 使用whereHas() 使用map和flatte会更好 $tags = $this->tag->where('name',$name)->get(); $articles = $tags->map(function($v) { return $v->articles; }) ->flatten() ->all();

我想搜索所有使用标签名称的书籍。我该怎么做

我的解决方案 这是我的解决方案,但我觉得不好。有人有其他解决办法吗?多谢各位

使用
whereHas()


使用
map
flatte
会更好

$tags = $this->tag->where('name',$name)->get();

$articles = $tags->map(function($v) { 
    return $v->articles; 
})
->flatten()
->all();
展平将返回同一级别的所有文章

[
   articleObject,
   articleObject,
   articleObject,
]

更详细的信息

您提到了
文章
标签
,但您想使用标签搜索
书籍
,并且您的代码显示您正在使用
标签
获得
帖子
,那么这4个实体之间的关系是什么呢?我已经编辑了这个问题。有三个表,文章,标签和文章标签。
article_id === tag_id
public function tagArticle($name)
{
    $tags = $this->tag->where('name',$name)->get();
    $articles = [];
    foreach ($tags as $tag) {
        $articles[] = $tag->articles;
    }
    return view('front.home')->with('articles',$articles);
}
 $articles=Article::whereHas('tags',function($query)
        {
            $query->where('name',$name);
        })->get();
$tags = $this->tag->where('name',$name)->get();

$articles = $tags->map(function($v) { 
    return $v->articles; 
})
->flatten()
->all();
[
   articleObject,
   articleObject,
   articleObject,
]