php - Laravel 4 eloquent कहां से या OR के साथ?




(6)

अगर आप या शर्तों को लूप कर रहे हैं, तो आपको दूसरी $ क्वेरी की आवश्यकता नहीं है-> जहां अन्य पदों से (वास्तव में मुझे नहीं लगता कि आपको सामान्य रूप से आवश्यकता है, तो आप केवल नेस्टेड में उपयोग कर सकते हैं जहां कहीं भी आसान हो)

$attributes = ['first'=>'a','second'=>'b'];

$query->where(function ($query) use ($attributes) 
{
    foreach ($attributes as $key=>value)
    {
        //you can use orWhere the first time, dosn't need to be ->where
        $query->orWhere($key,$value);
    }
});

मैं कैसे कहूं WHERE (a=1 OR b=1) AND (c=1 OR d=1)

अधिक जटिल प्रश्नों के लिए क्या मुझे कच्चे एसक्यूएल का उपयोग करना चाहिए?


आप पहली या शर्त से भी पूछ सकते हैं और बाद में आप एक और शर्त लागू कर सकते हैं

$model = Model::where('a',1)->orWhere('b',1);

अब उस $model चर पर एक और शर्त लागू करें

$model1 = $model->where('c',1)->orWhere('d',1)->get();

मुझे इस समस्या का सामना करना पड़ता है कई बार मैंने पाया कि समाधान सरल कोर वाक्यविन्यास का उपयोग करता है

User::where('name','ABC')
      ->whereRaw("(age = 25 OR age = 62) AND (position = 'manager' )")
      ->get();

यदि आप लार्वेल 4 में ब्रांड्स का उपयोग करना चाहते हैं और वापसी को न भूलें
लार्वेल 4 (कम से कम) में आपको उदाहरण के रूप में कोष्ठक में $ ए, $ बी का उपयोग करने की आवश्यकता है

$a = 1;
$b = 1;
$c = 1;
$d = 1;
Model::where(function ($query) use ($a, $b) {
    return $query->where('a', '=', $a)
          ->orWhere('b', '=', $b);
})->where(function ($query) use ($c, $d) {
    return $query->where('c', '=', $c)
          ->orWhere('d', '=', $d);
});

यह मेरा परिणाम है:


पैरामीटर ग्रुपिंग ( लैरावेल 4.2 ) का उपयोग करें। आपके उदाहरण के लिए, यह कुछ ऐसा होगा:

Model::where(function ($query) {
    $query->where('a', '=', 1)
          ->orWhere('b', '=', 1);
})->where(function ($query) {
    $query->where('c', '=', 1)
          ->orWhere('d', '=', 1);
});

$ ए, $ बी, $ सी, $ डी क्वेरी द्वारा गतिशील मूल्य हो सकता है

 ->where(function($query) use ($a, $b)
        {
            $query->where('a', $a)
                  ->orWhere('b',$b);
        })
 ->where(function($query) use ($c, $d)
        {
            $query->where('c', $c)
                  ->orWhere('d',$d);
        })




eloquent