我有一個SQL查詢,工作正常,我想轉換爲流暢::Laravel查詢生成器使用UNION
SELECT DISTINCT tags.tag
FROM tags, items
WHERE tags.taggable_type = 'Item'
AND items.item_list_id = '1'
UNION
SELECT DISTINCT tags.tag
FROM tags, itemlists
WHERE tags.taggable_type = 'ItemList'
AND itemlists.id = '1'
這是我用流利的,到目前爲止,這一切似乎是正確的據我可以從文檔告訴我們,各個查詢都對自己的工作,只是當我UNION他們就拋出一個錯誤:
$itemTags = Tag::join('items', 'items.id', '=', 'tags.taggable_id')
->select('tags.tag')
->distinct()
->where('tags.taggable_type', '=', 'Item')
->where('items.item_list_id', '=', $itemList->id);
$itemListTags = Tag::join('itemlists', 'itemlists.id', '=', 'tags.taggable_id')
->select('tags.tag')
->distinct()
->where('tags.taggable_type', '=', 'ItemList')
->where('itemlists.id', '=', $itemList->id);
// the var_dump below shows the expected results for the individual queries
// var_dump($itemTags->lists('tag'), $itemListTags->lists('tag')); exit;
return $itemTags
->union($itemListTags)
->get();
我收到以下錯誤,當我運行它(我也如果有所改變,它將從Ardent換到模型上) -
Argument 1 passed to Illuminate\Database\Query\Builder::mergeBindings() must be an instance of Illuminate\Database\Query\Builder, instance of LaravelBook\Ardent\Builder given, called in path/to/root\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php on line 898 and defined
嗨,我已經嘗試設置所有三種型號延長雄辯不熾熱II得到類似的錯誤:'參數1傳遞給照亮\數據庫\ Query \ Builder :: mergeBindings()必須是E:\ docs \ Documents \ Work \ MGC \ mgc_root \ vendor \ laravel中給出的Illuminate \ Database \ Query \ Builder實例,其中包含Illuminate \ Database \ Eloquent \ Builder實例\ framework \ src \ Illuminaate \ Database \ Query \ Builder.php在第898行並且定義了' –
您使用的是Laravel 4.0還是4.1? –
4.0我相信,我會嘗試運行作曲家更新,以查看是否有幫助 –