ジョシュ:
// 2つのeloqentコレクションが合併しました
$publicCategories = Category::where('menu', '=', 1)
->where('display_scope', 1)
->orderBy('parent_id')
->get();
$privateCategories = Category::where('menu', '=', 1)
->whereIn('id', $ids)
->orderBy('parent_id')
->get();
$categories = $publicCategories->merge($privateCategories);
//このクエリは、上記の重複しているこれら2つのMySQLのクエリを行います。
これからの結果が正しい、しかし、2つのクエリが必要です。
どのように私は1にこれら2つのクエリ、マージや労働組合に加入する雄弁なクエリを書くのですか?
ディリップHirapara:
なぜあなたは別にそれを取得していますか?あなたは使用することができOrwhere
、このために。
$publicprivateCategories = Category::where('menu', '=', 1)
->whereIn('id', $ids)
->orWhere('display_scope', 1)
->orderBy('parent_id')
->get();
更新
$publicprivateCategories = Category::where('menu', '=', 1)
->where(function($q) use($ids){
$q->whereIn('id', $ids)->orWhere('display_scope', 1);
})
->where('id', '!=', 2)
->orderBy('parent_id')
->get();
これにより、あなたは(パブリックまたはプライベート)カテゴリの両方を取得します。