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

السؤال

نشر

أريد إخفاء بعض الأعمدة عند إعادة رد response ككود JSON، على سبيل المثال يتم إخفاء عمود "password" بشكل تلقائي في لارافيل Laravel، عند إعادة بيانات مستخدم معين:

use App\Models\User;

$user = User::find(1);
return $user->toJson();

أدرك أنه يمكنني تعيين الخصائص المحمية protected في النموذج من خلال hidden$ أو visible$، لكن كيف يمكنني عمل هذا الأمر ديناميكيًا؟ حيث أرغب في إخفاء أو إظهار أعمدة مختلفة في أماكن مختلفة من التطبيق.

Recommended Posts

  • 1
نشر

توفر لارافل دالة لتطبيق إخفاء حقول معينة لكائن ما خلال سياق تنفيذ البرنامج، أي يمكننا تطبيقها قبل إعادة الرد، وهما الدالتين makeHidden وتقبل تمرير مصفوفة فيها أسماء الحقول التي نود إخفائها من الرد، 

وكتطبيق على مثالك تصبح الشيفرة كالتالي:

الصيغة العامة
return $user->makeHidden('attribute')->toJson();
                          ^^^^^^^^
أكثر من حقل

return $user->makeHidden(['attribute1','attribute2'])->toJson();
return $user->makeHidden(['address', 'phone_number']);

تطبيق
return $user->makeHidden('password')->toJson();

وعكسها  هي makeVisible

التوثيق: تعديل محددات الوصول مؤقتاً  temporarily modifying attribute visibility laravel

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...