laravel 设置所选选项

laravel set selected option

我有 table 个类别、产品和一个数据透视表 table:

和控制器:

public function edit($id)
    {   
        $kategoris = Category::all();
        $select = Product::with('categories')->FindorFail($id);
        $idcat = $select->pluck('id');
        //dd($id);

        return view('vendor.adminlte.admineditproduk')
                ->with('kategoris', $kategoris)
                ->with('select', $select)
                ->with('idcat', $idcat);
    }

和select选项形式:

<select class="form-control" name="kat_id[]" multiple>
   @foreach($kategoris as $value)
   <option value="{{ $value->id }}" {{ i dont know what i must throw here == $value->id }}>{{$value->namekat}}</option>
   @endforeach
</select>

我不知道如何获得选项 get selected.

当我使用它时,出现错误:

<option value="{{ $value->id }}" {{ $idcat == $value->id ? 'selected="selected"' : '' }}>{{$value->namekat}}</option>

Object of class Illuminate\Support\Collection could not be converted to int

谁能帮帮我???

我假设 $idcat = $select->pluck('id'); 是获取产品的类别 ID,如果是这样,您需要将其更改为:

$idcat = $select->categories->pluck('id');

然后您可以为您的表单执行以下操作:

<select class="form-control" name="kat_id[]" multiple>
    @foreach($kategoris as $value)
        <option value="{{ $value->id }}" {{ $idcat->contains($value->id) ? 'selected' : '' }}>
            {{$value->namekat}}
        </option>
    @endforeach
</select>

希望对您有所帮助!