laravel blade 模板上的 select2 标签重复值
duplicate value on select2 tag on laravel blade template
我在尝试在 select2 标签上显示数据时发现了一个错误。我有重复的数据,我想知道如何修复它。我正在使用 laravel 7,这是我的代码
这是我的控制器代码:
public function editLocation(Request $request,$id){
$mtFasilitas = DB::table('MT_Facility')->select('id','name')
->get();
$trFasilitas = DB::table('TR_Fasilitas')->select('idMtFasilitas')
->where('idDetailLokasi',$id)
->get();
return view('layout.back.content_kos.edit_kos',['mtFas' => $mtFasilitas, 'trFas' => $trFasilitas]);
}
这是我的 blade 模板:
<select class="js-example-basic-multiple form-control mb-4" name="fasilitas[]" multiple="multiple">
@foreach ($mtFas as $key => $data)
@foreach ($trFas as $key2 => $data2)
<option value="{{$data->id}}"{{$data2->idMtFasilitas == $data->id ? 'selected="selected"' : ''}}> {{ $data->name}}</option>
@endforeach
@endforeach
</select>
这是结果:
enter image description here
谁能帮帮我?
谢谢
$trFasilitas = DB::table('TR_Fasilitas')->select('idMtFasilitas')
->where('idDetailLokasi',$id)
->get()
->pluck('idMtFasilitas')
->all();
<select class="js-example-basic-multiple" name="fasilitas[]" multiple="multiple">
@foreach ($mtFas as $data)
<option value="{{ $data->id }}" {{in_array($data->id, $trFas) ? 'selected="selected"' : '' : ''}}>
{{ $data->name }}</option>
@endforeach
</select>
我觉得应该可以。
这是@Andy Song先生您更新的答案的结果
根据您的数据
$mtFasilitas = [{"id":4,"name":"a"},{"id":5,"name":"b"},{"id":6,"name":"c"}]
$trFasilitas = [{"idMtFasilitas":4},{"idMtFasilitas":5}]
你的内循环 运行 外循环的每个单个值两次,这就是数据打印两次的原因。
我在尝试在 select2 标签上显示数据时发现了一个错误。我有重复的数据,我想知道如何修复它。我正在使用 laravel 7,这是我的代码
这是我的控制器代码:
public function editLocation(Request $request,$id){
$mtFasilitas = DB::table('MT_Facility')->select('id','name')
->get();
$trFasilitas = DB::table('TR_Fasilitas')->select('idMtFasilitas')
->where('idDetailLokasi',$id)
->get();
return view('layout.back.content_kos.edit_kos',['mtFas' => $mtFasilitas, 'trFas' => $trFasilitas]);
}
这是我的 blade 模板:
<select class="js-example-basic-multiple form-control mb-4" name="fasilitas[]" multiple="multiple">
@foreach ($mtFas as $key => $data)
@foreach ($trFas as $key2 => $data2)
<option value="{{$data->id}}"{{$data2->idMtFasilitas == $data->id ? 'selected="selected"' : ''}}> {{ $data->name}}</option>
@endforeach
@endforeach
</select>
这是结果: enter image description here
谁能帮帮我? 谢谢
$trFasilitas = DB::table('TR_Fasilitas')->select('idMtFasilitas')
->where('idDetailLokasi',$id)
->get()
->pluck('idMtFasilitas')
->all();
<select class="js-example-basic-multiple" name="fasilitas[]" multiple="multiple">
@foreach ($mtFas as $data)
<option value="{{ $data->id }}" {{in_array($data->id, $trFas) ? 'selected="selected"' : '' : ''}}>
{{ $data->name }}</option>
@endforeach
</select>
我觉得应该可以。
这是@Andy Song先生您更新的答案的结果
根据您的数据
$mtFasilitas = [{"id":4,"name":"a"},{"id":5,"name":"b"},{"id":6,"name":"c"}]
$trFasilitas = [{"idMtFasilitas":4},{"idMtFasilitas":5}]
你的内循环 运行 外循环的每个单个值两次,这就是数据打印两次的原因。