2016-06-28 9 views
0

私はmysqlクエリーを持っています。それらをlaravelに渡したいのですが、laravelでANDを使用する方法はわかりません。Laravel 5 - クエリービルダー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') 

感謝の

+0

あなたは 'みました - > leftJoin( 'budget__items'、 'budget__items.id_budget'、 '='、$ id) 'の代わりに' - > * AND *( 'budget__items.id_budget'、 '='、$ id)'? – linuxartisan

答えて

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'); 
+0

ありがとうございました。この作品は、私は$ idにint値を置く場合、私はこのエラーがあります "列が見つかりません:1054不明な列 '3' 'on節'" ... 3番は$ idの値であり、列ではありません。 – user3242861

+0

'$ id'は無名関数の文脈では使用できませんでした。' use($ id) 'を追加しました。コードを改訂してください! –

+0

私はuse($ id)に追加しましたが、そのエラーを返します... – user3242861