如何使用Eloquent获得所有项目相同的类别

时间:2017-09-15 03:09:51

标签: laravel eloquent

大家好,

我正在Laravel中构建一个应用程序,我想在不使用此Eloquent的情况下获取文章类别中的所有项目。
我的代码是

$info = Article::find($article_id);
$cate_info = $info->article_categories()->first();
if($cate_info){
    $same = Article::with(['article_categories' => function ($query) use ($cate_info){
        $query->where('articles_category.ID' ,$cate_info->ID);
    }])->where('ID' ,'!=' ,$article_id)->get();
}

我收到所有文章。怎么解决。
ArticleArticle_Category处于多对多的关系中。 感谢。

1 个答案:

答案 0 :(得分:0)

如果您希望获得特定articles的所有article_categories,可以使用whereHas方法,现在假设namecategories中的字段列表格,所以你可以这样:

public function getData(Request $request)
{
    $category = $request->categoryName;
    //    $category = 'ABC Category';

    $articles = Article::whereHas('article_categories', function($query) use($category) {
        $query->where('name', 'like', '%'.$category.'%');
    })->get();

    return response()->json(['articles' => $articles], 200);
}

希望这有帮助。