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

السؤال

نشر

image.png.632b855b535d126c23b9d7cb8848f2db.png

 

image.thumb.png.a2847b2cc72f5eb15bbd0e0058e723ae.png

 

هذا اطار عمل خاص فيني وليس لارافل + مشابهة للمسار الاول "اساسيات php" ولكن لازلت اطور عليه

 

سؤالي هو لماذا عندما اقوم بتعريف الريكويست هنا في الباراميتر يتطلب الامر الى ان اقوم بتمرير قيمة له عند استدعائه 

بينما في لارافل لاداعي لذلك

Recommended Posts

  • 0
نشر (معدل)

هذه خاصية فى laravel تسمى Service Container وهى فعليا من اقوى الخصائص التى يتميز بها laravel حيث انك عند استعمالها توفر عليك مجهودا كثيرا .

هذه الخاصية تقوم بعمل حقن القيم للدوال عند استدعائها تلقائيا دون الحاجة منك إلى ان تمررها . و الاقوى من ذلك ان laravel يتعرف على نوع المتغير ويقوم بحقنه تلقائيا . 

وهذه الخاصية فى ال routes تسمى ب route binding حيث لارافل يتعرف تلقائيا على المتغير ويقوم بحقنه . 

مثلا لو كان لديك عنوان url يقوم بعرض المستخدم مثلا . وهذه العنوان كالتالى  

Route::get('/user/{user}');

هنا قمنا بتعريف عنوان لعرض المستخدم و {user} هنا هى ال id الخاص بالمستخدم .

وهنا فى الكود الخاص بال controller 

public function show(User $user){
dd($user);
}

هنا ستلاحظ ان laravel قام تلقائيا بالبحث عن المستخدم بال id الموجود فى العنوان وقام بحقنة فى المتغير user$ واذا لم يوجد هذا المستخدم فلارافيل تلقائيا يظهر خطأ 404 غير موجود .

 

ولمعرفة كيفية إنشاء مثل هذه الخاصية و معلومات اكثر  يمكنك قراءة هذه المقالة 

Service Container

تم التعديل في بواسطة محمد عاطف11

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...