如何显示 Laravel 中选择的附加值?

How to display attached values as selected in Laravel?

我在 laravel 8 中使用多对多关系。有两种模型:房间和服务。 我已将一些服务附加到特定的房间,现在,当我想编辑这个特定的房间时,我需要它来显示选择了哪些服务,哪些没有。

这是我正在使用的代码:

<select class="form-select" name="service_id[]" id="service_id" multiple>
    @foreach($services as $service)
    <option value="{{ $service->id }}" @if($rooms->services->in_array()) selected @endif>{{ $service->name }}</option>
    @endforeach
</select>

有什么建议吗?

在你的控制器上试试这个:

$RoomServicesIds = [];
foreach($room->services as $service ){
 array_push($RoomServicesIds ,$service->id);
}

然后 return $RoomServicesIds 变量与您的 blade 文件

在您的 blade 文件中将条件更改为:

@if(in_array($service->id,$RoomServicesIds)) selected @endif

你可以这样做:

@if(in_array($service->id, $rooms->services->pluck('id')->toArray(), true)) selected @endif