امیرحسین
4 سال پیش توسط امیرحسین مطرح شد
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();

ثبت پرسش جدید
فرشید مرادی
تخصص : noob
@eniack 4 سال پیش آپدیت شد
1

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


امیرحسین
تخصص : طراح فرانت سایت
@ah.askari8 4 سال پیش آپدیت شد
0

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


فرشید مرادی
تخصص : noob
@eniack 4 سال پیش آپدیت شد
1

داخل 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 4 سال پیش مطرح شد
0

@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 4 سال پیش مطرح شد
0

@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>

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

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


فرشید مرادی
تخصص : noob
@eniack 4 سال پیش آپدیت شد
0

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

 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 4 سال پیش مطرح شد
0

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


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

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