Laravel雄辩地说有关系

时间:2017-05-10 08:39:33

标签: sql laravel eloquent relation

我坚持将这个SQL查询转换为Laravel中的一个雄辩的查询。 SQL查询有效(在Sequel中测试),但我不能用雄辩的方式写出来......

SELECT faqs.question FROM faqs
JOIN categories c ON c.id = faqs.category_id
WHERE c.subsite = 'sport'

这是我到目前为止所尝试过的,但它会返回所有问题,(忽略子网站过滤器)。

$cat = Faq::with(['category' => function($query) use ($subsite) {
    $query->where('subsite', $subsite);
}])->get();

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

试试这个

$cat = Faq::query();
if (isset($subsite) && !empty($subsite) {
  $query->whereHas('category', function ($query) use ($subsite) {
            $query->where('subsite', $subsite);
        });
}
$query->with('category')->get();

答案 1 :(得分:0)

根据你的核心sql查询,这是你的laravel查询。

$data = DB::table('faqs')
            ->join('categories', 'categories.id', '=', 'faqs.category_id')
            ->select('faqs.question')
            ->where('categories.subsite', '=', 'sport')
            ->get();

希望这会对你有帮助!