راکت

شکل در آپدیت دیتابیس

6 پاسخ

سلام دستان من یه فرم دارم که یه فیلد از دیتابی رو که از نوع enum هست رو میخوام باهاش آپدیت کنم ولی اصلا اتفاقی نمیوفته یعنی تمامم مراحل میره جلو و حتی پیغامی توی سشن برای موفقیت آمیز بودن آپیدیت هم توی کنترلر گذاشتم اجرا میشه ولی توی دیتابیس تغییری نمیکنه و آپدیت اتفاق نمیفته میشه لطفا راهنماییم کنید؟
ای کد ویو

                    <form action="{{ route('service.update', $applysupportservice->ordersupportservice_id) }}" method="post">
                        @csrf
                        @method('put')
                        <div class="row g-2">
                            <select name="apply" class="form-select" id="exampleFormControlSelect1" aria-label="Default select example">
                                <option selected="">نوع تراکنش خود را انتخاب کنید</option>
                                <option value="Complet">تکمیل شده</option>
                                <option value="doing">درحال انجام</option>
                                <option value="unconfirmed">تایید نشده</option>
                              </select>
                        </div>
                        <br>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-label-secondary" data-bs-dismiss="modal">انصراف</button>
                            <button type="submit" class="btn btn-primary">تغییر وضعیت درخواست</button>
                        </div>
                    </div>
                </form>

اینم کد کنترلر

    public function update(Request $request, Ordersupportservice $ordersupportservice)
    {
        $data = $request->validate([
            'apply' => ['required']
        ]);
        dd($data);

        $ordersupportservice->update($data);

        session()->flash('status', 'وضعیت درخواست پشتیبانی مورد نظر بروزرسانی شد');

        return back();
    }

اینم فیلد dd که گرفتم و تایید ارسال درست فرم به کنترلر
 تصویر

اینم فیلد enum در دیتابیس و ورودی هایی که میگیره
 تصویر

ثبت پرسش جدید

پاسخ‌ها

6
مهدی مشایخی
مهدی مشایخی
@MahdiMashayekhi

تخصص: برنامه نویس پایتون - ماشین لرنینگ - جنگو

سلام
احتمالا به این دلیل هست که فیلد ordersupportservice_id رو در فرم خودتون قرار ندادید

<form action="{{ route('service.update', $ordersupportservice->id) }}" method="post">
حمید محسنی
حمید محسنی
@Hamid258

تخصص: گرافیست

@MahdiMashayekhi
سلام ممنون بابت پاسخگویی ولی توی کد ویو که توی سوالم هست رو اگر چک کنید می‌بینید که من آیدی مربوطه رو از جدول با یه کلید خارجی گرفتم توی جدول دیگه ذخیره کردم و از اون طریق آیدی رو دادم روت اپدیت

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

مهدی مشایخی
مهدی مشایخی
@MahdiMashayekhi

تخصص: برنامه نویس پایتون - ماشین لرنینگ - جنگو

پس کدتون به نظر درست میاد و مشکلی نداره
اما احتمال داره اون کاربری که با دیتابیس کار میکنه دسترسی نداشته باشه یا اینکه دیتابیس محدودیت داشته باشه

حمید محسنی
حمید محسنی
@Hamid258

تخصص: گرافیست

@MahdiMashayekhi
لطفا یکم بیشتر توضیح بدید الان من روی لوکال هستم و کاربری هم که این کد رو داره از سمت فراند تست می‌کنه خودمم با رول ادمین دسترسی کاربر هست ولی محدودیت دیتابیس رو متوجه نشدم میشه لطفا بیشتر توضیح بدید

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

تخصص: Full-Stack Developer

سلام به شما دوست عزیز.
تو مدل مربوطه چک کنید مقدار apply داخل fillable$ باشه.
موفق باشید.

حمید محسنی
حمید محسنی
@Hamid258

تخصص: گرافیست

@rezajahangir
سلام دوست خوبم ممنون بابت \اسخ گوییتون ولی فیلیبیل مشکل نداره چون که اگر اونجا نباشه قبل از عملیات create به ارور میخوره برنامه با اینحال من د مدلم رو هم براتون میزارم اینجا این مورد خیلی عجیبه و احساسم میگه چیزی که اینقدر همه چیزش درسته و کار نمیکنه یه مشکل خیلی ساده داره که از دید مخفی شده اینقدر سادست 😀 میخوام دوستانی که تخصص دارن بررسی کنند چون من خودم نتونستم \یداش کنم متاسفانه

کد مدل

    protected $fillable = [
     'apply',
     'Contract',
     'domain',
     'expire_at',
     'payment',
     'price',
     'status',
     'supportservice_id',
     'user_id'
    ];

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

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