Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

geetpurwar's avatar

Livewire checkbox array not working as expected

Hi,

I am trying to create a page where a admin can sync user & roles.

public $user;
public $selectedRoles = [];
	
public function mount()
{
	$this->roles = SpatieRole::all();
	$this->selectedRoles = $this->user->roles->pluck('id')->toArray();
}

public function updatedSelectedRoles()
{
	$this->user->syncRoles($this->selectedRoles);
}

FrontEnd:

<ul>
	@foreach($roles as $role)
	<li>
		<input 
		type="checkbox"
		value="{{ $role->id }}"
		wire:model="selectedRoles"
		>{{ $role->id }} {{ $role->name }}
	</li>
	@endforeach

</ul>

This works fine if $selectedRoles is empty array.

Let me know how can I fix this. Thanks.

0 likes
2 replies
Sinnbeck's avatar

You aren't setting the checkbox check property.

<li>
		<input 
		type="checkbox"
		value="{{ $role->id }}"
		wire:model="selectedRoles"
        {{$selectedRoles->contains($role->id) ? 'checked' : ''}} 
		>{{ $role->id }} {{ $role->name }}
	</li> 

Please or to participate in this conversation.