我有一個 Gebruikers 模型(荷蘭語用戶)和一個 Ateliers 模型(荷蘭語車間)。它們之間是多對多的關系。
保存新的 Gebruiker 時,您可以查看 gebruiker 所在的作業室。
在 Livewire 的“控制器”中:
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 表中,作業室保存在資料透視表中。
編輯特定 gebruiker 時,如何選中資料透視表中保存的作業室的復選框?
uj5u.com熱心網友回復:
我將嘗試根據您在此處共享的代碼重現您需要的一些邏輯
// 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/372560.html
