راکت
حل شده

مدیریت url های بعد از ارسال فرم در لاراول

4 پاسخ

سلام
یه سوال
ببینین تو لاراول یه زمانی هست که فرم را داریمبا متد post ارسال میکنیم و مثلا به آدرس dashboard/profile/edit میفرستیمش که پروفایل را در Controller ادیت کنه و به هر دلیلی یه خطایی میده لاراول برای فرم و وقتی دوباره همون صفحه را refresh میکنیم میگه The GET method is not supported for this route. Supported methods: POST.
چجوری این خطاها را مدیریت کنیم ؟
توضیح تصویر رو وارد کنید

ثبت پرسش جدید

پاسخ‌ها

4
سبحان دادخواه
سبحان دادخواه
@SobhanDadkhah

تخصص: دانشجوی برنامه نویسی :)

بهترین پاسخ

@yk5742g سلام.
این موضوعیه که گستردس ولی جالبه پیشنهاد میکنم راجبش اینجا بخونید .
شما باید ارور هاتون رو هندل کنید که اصطلاحا Error handling میگن بهش.
نمونه ای که اینجا شما میخواین باید برین داخل فولدر app/exceptions و فایل Handler.php و توی این مورد خاص این کد رو به متد render اضافه کنید.

if($exception instanceof \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException){
      return abort('404');
    }

که در واقع معنی میده اگر خطای من از نوع خطای متد (MethodNotAllowedHttpException) بود فلان کار رو بکن که اینجا خطای 404 هست .
این هم لینک مرتبط توی stackowerflow
https://stackoverflow.com/questions/46836778/methodnotallowedhttpexception-redirect-to-404
سعی کردم خیلی واضح توضیح بدم . موفق باشید

parhamft
parhamft
@parham.ftehrani

تخصص: برنامه نویس لاراول

وقتی با متد post کار میکنید باید عملیات رو از اول انجام بدید یعنی به طور مثال باید برگردید به صفحه قبل و دوباره روی دکمه کلیک کنید و با متد post ارسال کنید و refresh کردن در متد پست به علت مسائل امنیتی ارور میده

نوب
نوب
@yk5742g

تخصص: کدنویس نوب :)

میدونم
میخوام بدونم که اون ارور اگر روی سرور باشه را چطور مدیریت کنم که به کاربر نشون نده

شاید پاسخ شما همین‌جا باشد

Daee Hamid
Daee Hamid
@daeehamid

تخصص: Front-end | Back-end Developer

@yk5742g
سلام
فک میکنم روت ها رو درست ننوشته باشید

طبیعتا وقتی فرمی قراره ارسال بشه این فرم داخل یه صفحه ای قرار داره و اون صفحه هم یه روت داره ک متدش Get هست
شما ارسال فرم رو هم باید ب همون روت ارسال کنید ولی متدش post باشه

// نمایش صفحه ویرایش پروفایل
Route::get('/dashboard/profile', 'HomeController@viewProfile');
// ویرایش پروفایل
Route::post('/dashboard/profile', 'HomeController@UpdateProfile');

اینطوری اگر خطایی ظاهر بشه و کاربر صفحه رو رفرش کنه مجدد پیج ویرایش پروفایل رو میبینه

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام