نوب
4 سال پیش توسط نوب مطرح شد
4 پاسخ

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

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


ثبت پرسش جدید
سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 4 سال پیش آپدیت شد
1

@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
تخصص : برنامه نویس لاراول
@parham.ftehrani 4 سال پیش مطرح شد
0

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


نوب
تخصص : کدنویس نوب :)
@yk5742g 4 سال پیش مطرح شد
0

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


Daee Hamid
تخصص : Front-end | Back-end Developer
@daeehamid 4 سال پیش مطرح شد
-1

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

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

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

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


سبحان دادخواه
تخصص : دانشجوی برنامه نویسی :)
@SobhanDadkhah 4 سال پیش آپدیت شد
1

@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
سعی کردم خیلی واضح توضیح بدم . موفق باشید


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

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