我有3张桌子:
它们与枢轴有很多种关系。
我需要查询此内容以获取所有包含标记数组的文章:
Article::with('tags')->whereIn('id', $tagIdArray)->get();
上述问题是它返回id为$ tagIdArray的文章。如何约束结果以便我在标签关系中使用whereIn?
答案 0 :(得分:3)
你有正确的想法,但有点失控。使用with('tags')
函数只需将相关标签拉出您的文章,在with()
函数仍然适用于文章模型后链接的查询。
要查询关系,您可以执行以下操作
$tagIdArray = [1, 3, 5, 7, 9];
$articles = Article::whereHas('tags', function($query) use ($tagIdArray) {
/**
* Now querying the Tags relation. So anything in this closure will query the Tags
* relation, but outside of the closure, you're back to querying the Articles.
*/
$query->whereIn('id', $tagIdArray);
})->get();
Laravel关于查询关系http://laravel.com/docs/4.2/eloquent#querying-relations
的文档答案 1 :(得分:0)
这就是我通过在模型的关系级别过滤数据来提取产品的方式。
$youMayAlsoLike = Category::whereHas('product', function($query)
{
$query->whereIn('category_slug', ['gift-sets','multi-shade-sticks','eye pencil']);
})
->inRandomOrder()
->take(10)
->get();