如何在 Laravel 中存储数组?
How to store array in Laravel?
有两个mysqltable1.seats(id,number),2.reservedseats(id,seat_id,sceering_id) .
我在 show.blade:
中将特定排位赛的所有席位显示为复选框
{!!Form::model($screening,['method'=>'post', 'action'=>
['ReserveController@store',$screening->auditorium->id]])!!}
<input type="hidden" name="screening_id" value="{{$screening->id}}">
@foreach($seats as $seat)
<label class="checkbox-inline">
{!!Form::checkbox('seat_id[]',$seat->id,null)!!} Number: {{$seat->number}}
</label>
@endforeach
<div class='form-group'>
{!!Form::submit('Create Post',['class'=>'btn btn-primary '])!!}
</div>
{!!Form::close()!!}
当我点击一个复选框时,它进入 seat_id[] 数组。所以我发送了一个隐藏的输入和一个带有 seat_id 的数组,然后我想存储在保留席位 Mysql table 中。但是在商店控制器中我遇到了问题。我正在尝试类似的东西:
public function store(Request $request){
$screening_id = $request->screening_id;
$seat_ids = $request->seat_id;
foreach($seat_ids as $seat_id){
Seatreserved::create($seat_id,$screening_id);
}
}
所以它不起作用,但我该如何解决?
试试这个代码
public function store(Request $request)
{
$screening_id = $request->screening_id;
$seat_ids = $request->seat_id;
foreach($seat_ids as $seat_id) {
Seatreserved::create([
'seat_id' => $seat_id,
'screening_id' => $screening_id
]);
}
}
你也可以使用
public function store(Request $request)
{
$screening_id = $request->screening_id;
$seat_ids = $request->seat_id;
$data = [];
foreach($seat_ids as $seat_id) {
$data[] = [
'seat_id' => $seat_id,
'screening_id' => $screening_id
];
}
Seatreserved::insert($data);
}
这是执行此操作的更好方法,因为它将与数据库交互一次。
您还可以创建模型的新实例来存储值。
示例:
foreach($seat_ids as $seat_id) {
$reserved = new Seatreserved();
$reserved->seat_id = $seat_id;
$reserved->screening_id = $screening_id;
$reserved->save();
}
有两个mysqltable1.seats(id,number),2.reservedseats(id,seat_id,sceering_id) . 我在 show.blade:
中将特定排位赛的所有席位显示为复选框{!!Form::model($screening,['method'=>'post', 'action'=>
['ReserveController@store',$screening->auditorium->id]])!!}
<input type="hidden" name="screening_id" value="{{$screening->id}}">
@foreach($seats as $seat)
<label class="checkbox-inline">
{!!Form::checkbox('seat_id[]',$seat->id,null)!!} Number: {{$seat->number}}
</label>
@endforeach
<div class='form-group'>
{!!Form::submit('Create Post',['class'=>'btn btn-primary '])!!}
</div>
{!!Form::close()!!}
当我点击一个复选框时,它进入 seat_id[] 数组。所以我发送了一个隐藏的输入和一个带有 seat_id 的数组,然后我想存储在保留席位 Mysql table 中。但是在商店控制器中我遇到了问题。我正在尝试类似的东西:
public function store(Request $request){
$screening_id = $request->screening_id;
$seat_ids = $request->seat_id;
foreach($seat_ids as $seat_id){
Seatreserved::create($seat_id,$screening_id);
}
}
所以它不起作用,但我该如何解决?
试试这个代码
public function store(Request $request)
{
$screening_id = $request->screening_id;
$seat_ids = $request->seat_id;
foreach($seat_ids as $seat_id) {
Seatreserved::create([
'seat_id' => $seat_id,
'screening_id' => $screening_id
]);
}
}
你也可以使用
public function store(Request $request)
{
$screening_id = $request->screening_id;
$seat_ids = $request->seat_id;
$data = [];
foreach($seat_ids as $seat_id) {
$data[] = [
'seat_id' => $seat_id,
'screening_id' => $screening_id
];
}
Seatreserved::insert($data);
}
这是执行此操作的更好方法,因为它将与数据库交互一次。
您还可以创建模型的新实例来存储值。
示例:
foreach($seat_ids as $seat_id) {
$reserved = new Seatreserved();
$reserved->seat_id = $seat_id;
$reserved->screening_id = $screening_id;
$reserved->save();
}