أضف صفًا إلى مجموعة Eloquent افتراضيًا بناءً على الاستعلام الأولي

StackOverflow https://stackoverflow.com//questions/25010933

  •  20-12-2019
  •  | 
  •  

سؤال

في مجموعات Eloquent الخاصة بي، أود إضافة عمود إضافي يسمى "قابل للتحرير".يجب تضمين كلمة "قابل للتحرير" في كل استعلام أقوم بتشغيله على بعض النماذج.العرض "القابل للتحرير" إما أن يكون صحيحًا أو خطأ، بناءً على استعلام أولي.

لذلك لدي استعلام يجب تشغيله في كل استعلام في النماذج الخاصة بي.إضافة عمود إضافي إلى مجموعتي.يتم تحديد قيمة "قابل للتحرير" بواسطة استعلام أولي.

ما هي أفضل طريقة للقيام بذلك؟

هل كانت مفيدة؟

المحلول

يمكنك إضافة addSelect() طريقة لسلسلة الاستعلام الخاصة بك لتضمين السمة المخصصة ..

شيء مثل

$results = YourModelClass::select("*")
    ->addSelect(DB::raw("IF(condition,1,0) AS editable"))
    ->get();

في الحالة المذكورة أعلاه، سوف تحل محل condition باستخدام عبارة SQL ذات الصلة والتي سيتم تقييمها لكل صف كجزء من الاستعلام.إذا كان البيان صحيحا، ثم editable = 1 وإذا كان كاذبا ثم editable = 0 لكل صف تم إرجاعه إلى مجموعتك.

يحرر:لقد رأيت للتو أنك تريد هذا كل استعلام، لذلك ربما تحتاج إلى نطاق/سمة عامة لنماذجك، ولكن الأسلوب المذكور أعلاه لتضمين السمة الإضافية يجب أن يكون هو الأسلوب الصحيح.

لن أقوم بنسخ/لصق الوثائق الخاصة بإضافة النطاقات العامة، الموجودة في مستندات Laravel الأساسية وأنا متأكد من أنه يمكنك العثور عليها.

نصائح أخرى

يمكنك إضافة Getter مخصص إلى النموذج الخاص بك:

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top