选中 Laravel Livewire 编辑表单中的复选框

Check checkboxes in Laravel Livewire edit form

我有一个 Gebruikers 模型(荷兰语用户)和一个 Ateliers 模型(荷兰语车间)。它们之间是多对多的关系。

当保存一个新的 Gebruiker 时,您可以查看该 gebruiker 正在参加的工作室。

在 Livewire 'controller':

 public $selectedAtelier = [];
 public $gebruiker;

 public function saveGebruiker(){



$nieuwegebruiker = Gebruiker::create([
                'first' => $this->gebruiker['first'],
                'last' => $this->gebruiker['last'],
            
        ]);

        $nieuwegebruiker->ateliers()->sync($this->selectedAtelier);
}

在组件中:

<input type="text" wire:model="gebruiker.first">
<input type="text" wire:model="gebruiker.last">
 @foreach ($ateliers as $atelier)
  <input wire:model="selectedAtelier" value="{{ $atelier->id }}" 
       type="checkbox" 
      id="{{ $atelier->id }}"><label>{{$atelier-name}}</label>
 @endforeach

这很好用。 gebruiker 保存在 Gebruiker table 中,工作室保存在 pivot table.

编辑特定的 gebruiker 时,如何勾选保存在 pivot table 中的工作室复选框?

我将尝试根据您在此处共享的代码重现您需要的一些逻辑

// in component

public function someLoadMethodOnEdit() 
{
   $this->selectedAtelier = $this->gebruiker->ateliers()->pluck('id')->map(
                        function($group) {
                            return strval($group);
                        })->toArray();
}

// in blade
 @foreach ($ateliers as $atelier)
  <input wire:model="selectedAtelier" value="{{ $atelier->id }}" 
       type="checkbox" @if(in_array($atelier->id,$selectedAtelier)) checked @endif
      id="{{ $atelier->id }}" wire:key="aterlier-checkbox-{{ $atelier->id }}"><label>{{$atelier-name}}</label>
 @endforeach