Mohammad Yousef3 نشر 26 مارس 2021 أرسل تقرير نشر 26 مارس 2021 عند الاستعلام الشرطي في Laravel اقوم باستخدام WHERE لتحقيق أكثر من شرط, هكذا: $results = User::where('this', '=', 1) ->where(one, '=', 1) ->where('two', '=', 1) ->where('three', '=', 1) ->where('four', '=', 1) ->where('five', '=', 1) ->where('six', '=', 1) ->get(); هل توجد طريقة أخرى أكثر فاعلية ؟ اقتباس
0 Waleed Alfakiat نشر 26 مارس 2021 أرسل تقرير نشر 26 مارس 2021 تدعم Laravel الاستعلام المتعدد عن طريق تمرير مصفوفة تحتوي على الشروط بهذا الشكل: ['one', '=', 'value' ] ويتم الاستعلام باستخدام الشروط المتعددة بهذه الطريقة: $results = User ::where([ ['one', '=', 'value_1'], ['two', '<>', 'value_2'], [COLUMN, OPERATOR, VALUE], ... ]) وبهذه الطريقة يتم الاستعلام مع الشروط المطلوبة دفعة واحدة دون الحاجة إلى تكرار استدعاء where 2 اقتباس
0 بلال زيادة نشر 27 مارس 2021 أرسل تقرير نشر 27 مارس 2021 في Model الخاص بالمتحكم قم بوضع Scopes public function scopeActive($query) { return $query->where('active', '=', 1); } public function scopeThat($query) { return $query->where('that', '=', 1); } ثم بعد ذلك , يمكنك استدعاء هذه Scopes أثناء إنشاء استعلامك $users = User::active()->that()->get(); ايضا يمكنك استخدام SubQueries $results = User::where('this', '=', 1) ->where('that', '=', 1) ->where( function($query) { return $query ->where('this_too', 'LIKE', '%fake%') ->orWhere('that_too', '=', 1); }) ->get(); اقتباس
0 سامح أشرف نشر 27 مارس 2021 أرسل تقرير نشر 27 مارس 2021 بما أن كل جمل where التي تستعملها تستخدم المعامل = فيمكنك أن تقوم بجمع كل جمل where معًا في مصفوفة واحدة بالشكل التالي: $columns = ['col_1' => 1, 'col_2' => 2]; $results = User::where($columns)->get(); سيؤدي الكود السابق إلى تنفيذ جملة SQL التالية: SELECT * FROM users WHERE (col_1 = 1 AND col_2 = 2) بالتوفيق. اقتباس
السؤال
Mohammad Yousef3
عند الاستعلام الشرطي في Laravel اقوم باستخدام WHERE لتحقيق أكثر من شرط, هكذا:
هل توجد طريقة أخرى أكثر فاعلية ؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.