Php Laravel,从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

我正在尝试将数据库中的所有选定值显示为多个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->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)中使用
@大卫:谢谢