我正在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();
}
我收到所有文章。怎么解决。
Article
和Article_Category
处于多对多的关系中。
感谢。
答案 0 :(得分:0)
如果您希望获得特定articles
的所有article_categories
,可以使用whereHas
方法,现在假设name
为categories
中的字段列表格,所以你可以这样:
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);
}
希望这有帮助。