在where子句中执行行查找?

时间:2015-12-07 12:28:45

标签: laravel laravel-5 eloquent laravel-5.1

我收到所有有类别的文章,我有一个子查询来指定这个类别:

Article::whereHas('category', function($q) use ($categorySlug) {
    $q->where('slug', $categorySlug);
})->get();

每个类别都有一个父类别,我需要从slug中找出父类别,并在子查询中使用父类别,如:

Article::whereHas('category', function($q) use ($categorySlug) {
    $cat = Category::where('slug', $categorySlug)->first();
    $q->where('category_id', $cat->parent_id);
})->get();

但有更有效的方法吗?如何在where子句中执行parent_id查找?

1 个答案:

答案 0 :(得分:-1)

我看到你想通过slug搜索从类别表中获取文章数据,所以你可以加入表来获得结果

 $articles = Article::join('category', 'article.category_id', '=', 'category.id')
                   ->where('category.slug','=', $categorySlug)
                   ->get();