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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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']; اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Mahmoud Alrashidi
عندما أستخدم eloquent ، يمكنني استخدام طريقة "where" ثم طريقة "get" لملء كائن يحتوي على ما حددته في قاعدة البيانات الخاصة بي. يعني:
هنا يمكنني اختيار الأعمدة التي أريد الحصول عليها مثل "pseudo" ، "email" ، إلخ. ولكن ما أريده هو طريقة القيام بالعكس. يمكن أن يكون شيئًا من هذا القبيل:
هل هناك طريقة معينة لعمل ذلك؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.