Php Laravel,从select2中的数据库中获取所选值
我正在尝试将数据库中的所有选定值显示为多个select2。因此,当我要添加其他事件时,我可以添加它们Php Laravel,从select2中的数据库中获取所选值,php,laravel,jquery-select2,Php,Laravel,Jquery Select2,我正在尝试将数据库中的所有选定值显示为多个select2。因此,当我要添加其他事件时,我可以添加它们 Offer tables: id:1 title: event1 events: 17,6,8 列事件具有选定的所有事件的id 我就是这么做的: public function edit($id) { $offer=Offers::find($id); $events=Events::all(); $explode= explode
Offer tables:
id:1
title: event1
events: 17,6,8
列事件具有选定的所有事件的id
我就是这么做的:
public function edit($id)
{
$offer=Offers::find($id);
$events=Events::all();
$explode= explode(',', $offer->events);
return view('edit',['offer'=>$offer,'events'=>$events,'explode'=>$explode]);
}
刀片:
<div class="form-group m-form__group row">
<label class="col-xl-3 col-lg-3 col-form-label">****</label>
<div class="col-xl-9 col-lg-9">
<select class="form-control m-select2" id="m_select2_3" name="events[]" multiple="multiple">
<optgroup label="Events">
@foreach($events as $event)
@foreach($explode as $item)
<option value="{{$event->id}}" {{ $item == $event->id ? 'selected="selected"' : ''}}>{{$event->title}}</option>
@endforeach
@endforeach
</optgroup>
</select>
</div>
</div>
****
@foreach($events作为$event)
@foreach($分解为$项)
身份证?”selected=“selected”:''}}>{{{$event->title}
@endforeach
@endforeach
因此,当我选择该值时,它会显示三次重复的值
可能当您获得事件时,您会得到重复的事件,请尝试以下操作:
public function edit($id)
{
$offer=Offers::find($id);
$events=Events::all();
$explode = array_values(array_unique(explode(',', $offer->events)));
return view('edit',['offer'=>$offer,'events'=>$events,'explode'=>$explode]);
}
但是,如果是这种情况,您应该知道您的报价表一开始没有重复的事件,因此您可能需要更改保存报价事件的脚本,以便删除重复条目
另外,我不知道您的“事件”表是否也包含重复的事件。请检查并从“事件”表中删除任何重复的值,如果不能使用相同的代码,请在控制器中使用相同的代码:
$events=array\u值(array\u唯一(events::all()->toArray())代码>
我希望它能帮助您加载$events
变量中的所有数据库事件,而不是与报价相关的事件。你应该这样做:
$events = Event::find(explode(',', Offer::find($id)->events));
话虽如此,最好使用关系,而不是手动设置ID您也可以发布控制器代码吗?是提供到事件
一对多关系吗?你从你的foreach
中获得了重复的事件,有多个事件属于提供的。删除@foreach$explode
,在数组($event->id,$explode)中使用@大卫:谢谢