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

السؤال

نشر

سلام وعليكم,

كيف يمكنني منع ظهور الخطأ MethodNotAllowedHttpException عند طلب رابط من نوع post من المتصفح مباشرة

للتوضيح:

Screenshot_2021-03-13_12-26-43.png.aa3fbba22e0889a3e2b625cf0c73f34a.png

Screenshot_2021-03-13_12-27-37.png.e95dedb5b4ffca50f1448c3a5046cf1b.png

Screenshot_2021-03-13_12-27-56.thumb.png.127b19fc97d043771af7c0f457953742.png

 

حاولت كتابة هذا الكود في الملف handler :

 public function report(Throwable $exception)
    {
        parent::report($exception);
    }

 public function render($request, Throwable $e){
        if($e instanceof MethodNotAllowedHttpException){
            return back();
        }
 }

نجح لكن ظهرت مشكلة و هي في حالة ارسال مثلا form فارغ تظهر صفحة بيضاء و من المفروض تظهر الاخطاء

شكرا لكم.

Recommended Posts

  • 0
نشر

حسب المعايير القياسية المتبعة عالمياً, يعتبر دائماً اي request صادر من متصفح عبر كتابة الرابط او الضغط على رابط هو request من نوع GET

اما الانواع الاخرى مثل POST و PATCH وغيرها فهي ناجمة عن الضغط على زر Submit ضمن HTML Forms 

لذلك فإما ان تكتب Route::get بدلاً من Route::post

او يمكنك انشاء دالة جديدة Route::get بنفس المسار ونفس دالة الـCallback وتبقي Route::post على حالها

او (الخيار الامثل) هو استخدام Route::any والذي يشير بقبول الـRequests من اي نوع سواء Post او Get او غيرها اذا كنت ترغب

  • 0
نشر

لقد ظهر هذا الخطأ لأنك تقوم  بعمل GET Request في مسار لا يقبل إلا  POST.

في المثال الذي تفضلت به لدينا

Route::post('/settings/update', 'SettingsController@update');

إدا ذهبنا إلى المسار http://localhost:8000/settings/update فسيظهر الخطأ MethodNotAllowedHttpException  لأن هذا المسار لا يقبل هذا النوع من Request

والحل هو إضافة مسار اخر يقبل GET Request لإظهار form تعديل الإعدادات مثلا هكدا 

Route::get('/settings/create', 'SettingsController@create');

 

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...