どのように私は1にこれら2つのクエリ、マージや労働組合に加入する雄弁なクエリを書くのですか?

ジョシュ:

// 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();

これにより、あなたは(パブリックまたはプライベート)カテゴリの両方を取得します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=13601&siteId=1