راکت

تکراری ذخیره شدن رکورد در دیتابیس

7 پاسخ

سلام دوستان
تعدادی input دارم با value های متفاوت اما هر کدوم که انتخاب میکنم برای ذخیره شدن در دیتابیس تفاوتی نداره یعنی انگار همیشه input اولی رو انتخاب کردم
روی هر کدوم که میزنم فرقی نداره خیلی عجیبه

@forelse ($time->times as $item)

                        <div class="date-time-hide">
                            <input type="" name='fa_date' value="{{ $item->date }}">
                            <input type="" name='fa_hour' value="{{ $item->hour }}">
                        </div>

                        <button class="getAppointment btn  m-2" name="time_id" value="{{ $item->id }}"
                            type="submit">{{$item->date}} - ساعت : {{$item->hour}}</button>
                        @empty
                        <div class="alert alert-success">هیج نوبتی ثبت نشده است</div>
                        @endforelse
$reserve = Appointment::firstOrCreate(
            [
                'doctor_id' => $request->doctor_id,
                'user_id' => $request->user_id,
                'time_id' => $request->time_id,
                'fa_doctor' => $request->fa_doctor,
                'fa_user' => $request->fa_user,
                'fa_hour' => $request->fa_hour,
                'fa_date' => $request->fa_date,
            ]
        );
        $reserve->save();
ثبت پرسش جدید

پاسخ‌ها

7
فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

سلام ، خب شما باید name های متفاوتی بزاری واسه ی input ها همشون name یکسان دارند.
الان مثلا ۲۰ تا input دارید با نام fa_hour

امیرحسین
امیرحسین
@ah.askari8

تخصص: طراح فرانت سایت

@eniack
بله درست میگید
ولی وقتی که براکت میگذارم برای اینکه name ها متفاوت باشن به این صورت []name = fa_date ارور Array to string conversion میده
میشه لطف کنین بگید چطوری name متفاوت بزارم براش؟
چون حلقه for هست و خودش داره input میسازه

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

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

داخل for کلید تعریف کنید و بعنوان اسم پاس بدید به input ها

@forelse ($times as $key => $item)

                        <div class="date-time-hide">
                            <input type="" name='fa_date{{$key}}' value="{{ $item->date }}">
                            <input type="" name='fa_hour{{$key}}' value="{{ $item->hour }}">
                        </div>
کیان صادقی
کیان صادقی
@kian.sdi.0028

تخصص: کار‌آموز برنامه نویسی بک اند

@ah.askari8
درود اتربیوت HTML در کنار خودش علامت براکت نمیگیره یعنی این فرم غلطه :

name[] = "username"

باید علامت براکت رو جلوی مقدارش بذارید .


<input type="text" name="tree[tree2][fruit]">
<input type="text" name="tree[tree2][height]">

<input type="text" name="tree[tree3][fruit]">
<input type="text" name="tree[tree3][height]">
امیرحسین
امیرحسین
@ah.askari8

تخصص: طراح فرانت سایت

@eniack

 @forelse ($time->times as $key => $item)

                        <div class="date-time-hide">
                            <input type="" name='fa_date{{$key}}' value="{{ $item->date }}">
                            <input type="" name='fa_hour{{$key}}' value="{{ $item->hour }}">
                        </div>

همونطوری که فرمودید تغیر دادم اما این پیام نشون میده

توضیح تصویر رو وارد کنید

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

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

 foreach($request->all() as $key => $item){
            if (strpos($key, 'fa_date') !== false) {
                $fa_date = $item;
            }else if(strpos($key, 'fa_hours') !== false){
                $fa_hours = $item;
            }
        }

اینو قبل از ولیدشن قرار بدید و این دو کد رو بردارید

'fa_hour' => $request->fa_hour,
                'fa_date' => $request->fa_date
امیرحسین
امیرحسین
@ah.askari8

تخصص: طراح فرانت سایت

@kian.sdi.0028
بله میدونم اشتباه تایپی بود

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

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