ابراهيم بازي نشر 26 يوليو 2023 أرسل تقرير نشر 26 يوليو 2023 ماهو الفرق بين request() و $request المعرفة كمعامل للدالة ? 1 اقتباس
0 Mustafa Suleiman نشر 26 يوليو 2023 أرسل تقرير نشر 26 يوليو 2023 بإمكانك التحقق من المعلومات عبر طلبات POST و GET باستخدام الـ "Request" المدمجة، والوصول إلى بيانات الطلب من خلال هذا الكائن وتحليلها للتحقق منها. وإليك الخطوات للتوضيح: طلب GET: للوصول إلى بيانات طلب GET، استخدم الـ "query" المدمجة في كائن الطلب. // استقبال البيانات من الطلب GET public function getExample(Request $request) { $data = $request->query(); // تحقق من وجود معلومة معينة بالاستعلام الذي تم إرساله if ($request->has('key')) { // اعمل شيئاً مع المعلومة الموجودة في المفتاح 'key' } // ... تابع باقي المنطق الخاص بك } طلب POST: نستخدم الـ "input" المدمجة في كائن الطلب. // استقبال البيانات من الطلب POST public function postExample(Request $request) { $data = $request->input(); // تحقق من وجود معلومة معينة بالمتغيرات التي تم إرسالها بالطلب POST if ($request->has('key')) { // اعمل شيئاً مع المعلومة الموجودة في المفتاح 'key' } // ... تابع باقي المنطق الخاص بك } في كلا الحالتين، تستطيع الوصول إلى قيمة معينة من خلال استخدام الدالة "input" مع اسم المفتاح كمعامل. وإليك مثال للحصول على قيمة معينة من طلب POST: // استقبال البيانات من الطلب POST public function postExample(Request $request) { $username = $request->input('username'); $password = $request->input('password'); // ... تابع باقي المنطق الخاص بك } 1 اقتباس
0 Hessen Nasser نشر 26 يوليو 2023 أرسل تقرير نشر 26 يوليو 2023 يمكنك التحقق من المعلومات المرسلة عبر طلبات HTTP من خلال استخدام الـ POST و GET وغيرها من الأساليب المتاحة. ولكن دعني اذكر لك الفرق بين request() و $request كمعامل للدالة: request(): هو دالة مساعدة (Helper function) تُستخدم لاسترداد البيانات المرتبطة بالطلب الحالي وتعمل كملخص لكائن مبني من فئة Illuminate\Http\Request. يمكنك استخدامها للوصول إلى جميع بيانات الطلب بطرق مختلفة مثل الحصول على قيم الـ GET و POST والبيانات الحالية للجلسة والملفات المرفقة ومعلومات الرأس (Headers) وغيرها. واليك هذا المثال public function someControllerMethod(Request $request) { $username = $request->input('username'); $email = $request->input('email'); // إجراءات أخرى } $request كمعامل للدالة: هو عبارة عن قيمة تمررها يدويًا كمعامل للدوال (عادةً في وحدات التحكم - Controllers). يمثل $request هنا كائن الطلب (Instance of Illuminate\Http\Request) ويحتوي على نفس المعلومات التي توفرها دالة request(). use Illuminate\Http\Request; public function someControllerMethod(Request $request) { $username = $request->input('username'); $email = $request->input('email'); // إجراءات أخرى } يمكنك استخدام أي منهما للقيام بنفس الأشياء والحصول على نفس البيانات المتعلقة بالطلب الحالي. الاختلاف هو في كيفية استدعاءهما فقط. الأول (request()) هو دالة مساعدة متاحة على مستوى التطبيق ويمكن استخدامها في أي مكان، بينما الثاني ($request) يُمرر كمعامل إلى دوال الوحدات التحكم ليتم توفيره من قبل لارافيل بشكل تلقائي عندما تُعرّف الدالة. ارجو ان تكون الاجابه واضحه وكافيه لمساعدتك. 1 اقتباس
0 عبدالباسط ابراهيم نشر 15 أغسطس 2023 أرسل تقرير نشر 15 أغسطس 2023 الفرق الأساسي بين request() و $request في Laravel هو: request() هي طريقة تُستخدم للحصول على مثيل من كائن Request. يمكن استخدامها داخل الـ controller أو أي مكان آخر للحصول على كائن Request والوصول إلى بيانات الطلب مثل الـ input ، query parameters ، headers الخ. مثال: public function store(Request $request) { $name = request()->input('name'); } $request هو متغير يتم تمريره تلقائيًا إلى وظائف الـ controller في Laravel والذي يحتوي على كائن Request. يمكن استخدامه مباشرة داخل الـ controller للوصول إلى بيانات الطلب. مثال: public function store(Request $request) { $name = $request->input('name'); } في المثال الأول، نستخدم request() للحصول على كائن Request. وفي المثال الثاني، نستخدم $request الذي تم تمريره إلى الدالة store() تلقائيًا. الفرق الرئيسي الآخر بين $request و request() هو مفهوم الحقن التلقائي للتوابع (Dependency Injection). كما ذكرت، عند استخدام $request فإننا نقوم بحقن كائن Request مباشرة في الدالة الخاصة بنا، مما يؤدي إلى: ربط ضعيف (Loose Coupling) - حيث لا نعتمد مباشرة على أي كلاس محدد في الكود. سهولة الاختبار (Testability) - حيث يمكننا وضع Mock لـ Request في الاختبارات. بينما عند استخدام request() فإننا نعتمد مباشرة على Laravel Facade وهذا يجعل التعامل مع الاختبارات أكثر صعوبة. إذاً كما ذكرت، من الأفضل استخدام $request عند الإمكان لمزايا الربط الضعيف وسهولة الاختبار. اقتباس
السؤال
ابراهيم بازي
ماهو الفرق بين request() و $request المعرفة كمعامل للدالة ?
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.