راکت
حل شده

ذخیره نشدن اطلاعات در دیتابیس

3 پاسخ

سلام من این ارور رو دارم
The PUT method is not supported for this route. Supported methods: POST.
مشکل از کجاست؟
روت:

Route::post('register/store',[UserController::class,'store'])->name('store.register');

کنترلر:

public function store(Request $request)
    {
        $user = new user([
            'name'=>$request->get('name'),
            'email'=>$request->get('email'),
            'password'=>$request->get('password'),
            'gender'=>$request->get('gender'),
            'age'=>$request->get('age'),
        ]);
        try {
            $user->save();
        } catch (\Exception $exception){
            dd($request);
            //return view('register')->with('warning',$exception->getCode());
        }
    }

اینم فرم ام:

<form class="mt-5 p-4 text-padding w-75 rounded-3 mx-auto" style="background-color: #deecf4" method="POST" action="{{route('store.register')}}">
    @csrf
    {{ method_field('PUT') }}
امین
امین
@alavi.gavad
ثبت پرسش جدید

پاسخ‌ها

3
رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

بهترین پاسخ

سلام به شما دوست عزیز.
مشکل کار اینجاس که شما اومدی روت رو به صورت post تعریف کردی، داخل کنترلر هم میخوای اطلاعات کاربر رو ذخیره کنی که میشه یک عمل post، تا اینجا درسته، اشتباهت اینه که اومدی داخل فرم بعد از

@csrf

عبارت زیر رو قرار دادی که نیازی بهش نیست، عبارت زیر رو از کدت حذف کن تا مشکلت برطرف بشه:

{{ method_field('PUT') }}

کدتونو بسیار کثیف یا به اصطلاح hard code نوشتین، روی مباحث clean code بیشتر کار کنین.
موفق باشید.

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

متد تعریف شده برای مسیر URL مورد نظر و فرم ارسالیتون با هم یکسان نیستند.
بعنوان مشخص ترین و ساده ترین راهکار کافیه روت تون رو با متد put بازنویسی کنید:

Route::put('register/store', [UserController::class,'store'])->name('store.register');
امین
امین
@alavi.gavad

سلام
put رو هم نوشتم باز همون خطا رو میده

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

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

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