Laravel:被当前输入数据覆盖

w41d8nur  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(117)

因此,我只是在bravo_book_others表中添加了一个新列,该列是gender,other_name。我有一个例子,user1想为user1和user1的朋友购买3个套餐。输入如下

Name : user1
Email : user1@gmail.com

Gender : male
Name : a
Email : a@gmail.com

Gender : female
Name : b
Email : b@gmail.com

输出:

Name : user1
Email : user1@gmail.com

Gender : male
Name : a
Email : a@gmail.com

Gender : female
Name : b
Email : b@gmail.com

但我得到的输出是这样的:

Name : user1
Email : user1@gmail.com

Gender : female
Name : b
Email : a@gmail.com

Gender : female
Name : b
Email : b@gmail.com

姓名和性别被覆盖,用新的输入。我如何修复这个问题?
控制器:

foreach ($request->input('other_emails') as $email){
            BookOther::create([
                'booking_id'=>$booking->id,
                'user_id'=>$booking->customer_id,
                'gender'=>$request->input('gender'),
                'other_name'=>$request->input('other_name'),
                'other_emails'=>$email
            ]);
            Mail::to($email)->send(new OthersEmail($isi_email1));
        }

刀锋:

@for ($i = 1; $i < $numbers; $i++)
                <div class="col-md-12">
                        <label >Name#{{$i}} </label>
                        <input type="text" class="form-control" id="other_name" name="other_name" autocomplete="off">
                    </div>
<!--the reason i don't user other_name[]-->
<!--Because i get error message array to string conversion-->
                    <div class="col-md-12">
                        <label >Email#{{$i}} </label>
                        <input type="text" class="form-control" id="other_emails" name="other_emails[]" autocomplete="off">
                    </div>
                @endfor
5lhxktic

5lhxktic1#

您必须使用other_name[],否则只有最后输入的other_name条目会在请求中返回。对于数组到字符串转换错误,问题如上所述。other_name是一个数组,它有索引,不能作为$request->input('other_name')接收。这应该可以工作。

foreach ($request->input('other_emails') as $index => $email){
   BookOther::create([
    'booking_id' => $booking->id,
    'user_id' => $booking->customer_id,
    'gender' => $request->input('gender')[$index], // i don't see you sending gender in blade snippet but should be recvd like so
    'other_name' => $request->input('other_name')[$index],
    'other_emails' => $email
   ]);

}

我注意到的另一件事是,在blade foreach循环中,您是从$i = 1开始的,请确保它正确地呈现了表单。通常索引从0开始,但我没有您的情况的完整上下文,所以只是一个观察。

相关问题