Laravel 5 - 查询构建器AND

时间:2016-06-28 23:23:27

标签: mysql laravel-5

我有一个mysql查询,我想将它们传递给laravel,但我不知道如何在laravel中使用AND。

MySQL的:

SELECT * FROM `items_sizes` left join `items` on `items_sizes`.`id_item` = `items`.`id` left join `budget__items` on `items_sizes`.`id` = `budget__items`.`id_itemSize` and `budget__items`.`id_budget` = 1 where `items`.`active` = 1 and `budget__items`.`id_budget` is null order by `items_sizes`.`updated_at` asc

Laravel:

$itemsSizes = ItemsSize::leftJoin('items', 'items_sizes.id_item', '=','items.id')
        ->leftJoin('budget__items','items_sizes.id', '=', 'budget__items.id_itemSize')
        ->*AND*('budget__items.id_budget', '=', $id)
        ->where('items.active', '=', 1)
        ->whereNull('budget__items.id_budget')
        ->orderBy('items_sizes.updated_at', 'asc')

感谢的

1 个答案:

答案 0 :(得分:0)

请尝试以下方法:

$itemsSizes = ItemsSize::leftJoin('items', 'items_sizes.id_item', '=','items.id')
    ->leftJoin('budget__items', function($join) use($id) {
        $join->on('items_sizes.id', '=', 'budget__items.id_itemSize')
        ->where('budget__items.id_budget', '=', $id);
    })
    ->where('items.active', '=', 1)
    ->whereNull('budget__items.id_budget')
    ->orderBy('items_sizes.updated_at', 'asc');