Mahmoud Alrashidi نشر 24 مارس 2021 أرسل تقرير نشر 24 مارس 2021 عندما أستخدم eloquent ، يمكنني استخدام طريقة "where" ثم طريقة "get" لملء كائن يحتوي على ما حددته في قاعدة البيانات الخاصة بي. يعني: $users = User::where('gender', 'M')->where('is_active', 1)->get(['pseudo', 'email', 'age', 'created_at'])->toArray(); هنا يمكنني اختيار الأعمدة التي أريد الحصول عليها مثل "pseudo" ، "email" ، إلخ. ولكن ما أريده هو طريقة القيام بالعكس. يمكن أن يكون شيئًا من هذا القبيل: $users = User::where('gender', 'M')->where('is_active', 1)->notGet(['pseudo', 'email', 'age', 'created_at'])->toArray(); هل هناك طريقة معينة لعمل ذلك؟ 1 اقتباس
0 سمير عبود نشر 24 مارس 2021 أرسل تقرير نشر 24 مارس 2021 أحد الطرق المُمكنة لتحقيق ذلك هي إستخدام نطاق خاص في النموذج User بالشكل التالي: protected $fields = ['id','pseudo','email']; // add all fields from your table public function scopeExclude($query, $excludes = []) { return $query->select(array_diff($this->fields, (array) $excludes)); } ثم في المُتحكم يُمكنك عمل: <?php $users = User::where([ ['gender', '=', 'M'], ['is_active', '=', 1], ])->exclude(['pseudo', 'email', 'created_at']) ->toArray(); 1 اقتباس
0 Waleed Alfakiat نشر 24 مارس 2021 أرسل تقرير نشر 24 مارس 2021 (معدل) يمكنك استخدام makeHidden للقيام بإخفاء الأعمدة التي لا تريدها, فنقوم بالاستعلام عن البيانات التي نريدها, ثم نُطبق الدالة makeHidden ونحدد الأعمدة التي لا نريدها في النتيجة $res = Model::where('users')->get(); $res->makeHidden(['pseudo', 'email', 'age', 'created_at']); return $res; فبهذه الطريقة تقوم بإخفاء قيم (البريد الإلكتروني والعمر ... إلخ) عند الحاجة هذه طريقة جيدة, ولكن توجد طريقة أخرى أيضًا تُسهل عليك الإجراءات إذا كنت ترغب بإخفاء الأعمدة بشكل دائم وهي التوجّه إلى الـ model الخاص بالمستخدمين 'User' (أو أي نموذج ترغب بإخفاء أعمدة بداخله) ويوجد هنالك المتغير protected $hidden = [...] حيث يحتوي على مصفوفة باسماء الحقول التي لن تظهر عند الاستعلام ونقوم بإضافة الحقول المراد إخفائها في المتغير, لتصبح كالآتي: protected $hidden = [ 'password', 'remember_token', 'pseudo', 'email', 'age', 'created_at', ]; ثم نقوم بالاستعلام عن البيانات بشكل مباشر عن طريق نموذج User $res = User::all(); return $res; // الحقول التي حددناها أنّها مخفية لن تظهر في النتيجة تم التعديل في 24 مارس 2021 بواسطة Alfakiat 1 اقتباس
0 بلال زيادة نشر 25 مارس 2021 أرسل تقرير نشر 25 مارس 2021 توفر Laravel هذه الخاصية فيمكنك استخدام المتغير hidden بداخل ملف Model الخاص بالمتحكم لإخفاء الحقول الذي تريد إستبعادها مثل protected $hidden = array('id'); أو بهذا الشكل protected $hidden = ['id']; أو يمكنك وضع أكثر من عمود بداخل المصفوفة هكذا protected $hidden = array('id', 'username', 'image'); أو بهذا الشكل protected $hidden = ['id', 'username', 'image']; اقتباس
السؤال
Mahmoud Alrashidi
عندما أستخدم eloquent ، يمكنني استخدام طريقة "where" ثم طريقة "get" لملء كائن يحتوي على ما حددته في قاعدة البيانات الخاصة بي. يعني:
هنا يمكنني اختيار الأعمدة التي أريد الحصول عليها مثل "pseudo" ، "email" ، إلخ. ولكن ما أريده هو طريقة القيام بالعكس. يمكن أن يكون شيئًا من هذا القبيل:
هل هناك طريقة معينة لعمل ذلك؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.