اذهب إلى المحتوى

السؤال

نشر

كيف يمكنني وضع أكثر من جملة شرطية where ضمن الاستعلام في Eloquent. فبفرض لدي المودل User وعند استعادة بعض السجلات أرغب بإضافة أكثر من جملة شرطية واحدة على الاستعلام:

$results = User::where('this', '=', 1)-get();

أين يجب أن أقوم بإضافة الجمل الشرطية الأخرى في هذا الاستعلام؟

Recommended Posts

  • 0
نشر

يوجد عدة طرق لتنفيذ ذلك، فيمكنك على سبيل المثال استخدام المصفوفات كالتالي:

$query->where([
    ['column_1', '=', 'value_1'],
    ['column_2', '<>', 'value_2'],
    [COLUMN, OPERATOR, VALUE],
    ...
])

بحيث يكون الترتيب بدءً من اليسار: اسم العمود، عملية المقارنة، القيمة.

وكذلك يمكنك وضع الجمل الشرطية ضمن متحولات وإعادة استخدامها في الاستعلام بالشكل التالي:

$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...];


$orThose = ['yet_another_field' => 'yet_another_value', ...];

ثم:

$results = User::where($matchThese)->get();

// مع مجموعة أخرى من الاستعلامات
$results = User::where($matchThese)
    ->orWhere($orThose)
    ->get();

وبالتالي سيكون مماثل للاستعلام الأساسي بالشكل المكافئ للتالي:

SELECT * FROM users
  WHERE (field = value AND another_field = another_value AND ...)
  OR (yet_another_field = yet_another_value AND ...)

وأخيراً: يمكن ببساطة وضع سلسلة الشروط بشكل متتالي:

User::where('this', '=', 1)
            ->where('that', '=', 1)
			->get();

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...