Herkese merbaha. Soyle bir sorunum var. Projede spatie laravel permission kullaniyorum. Bir Table var , icerisinde roller var ve karsinda permission ekle buttonu. Permission ekle tiklandiginda bir sidebar aciliyor ve icerisinde tum permissionlar checkbox halinde cikiyor. Oncelikle ilk ekleme islemi kolayca oluyor. Role permissionlar ekleniyor dogru sekilde. Simdi sorunlar su sekilde:
1) Permissionlar eklendi simdi yeniden permission ekle tiklayinca acilan pencerede mevcut rollerin checkboxlarinin checked olmasini istiyorum amma olmuyor
2) Permission eklenmis role yeniden permission ekleye tiklayip yeni permissionlar secip ekleyince ve ya mecvutlari kaldirib degistirince hata aliyorum. Yani mesela secilmemis bir permissionu checked yapip ardindan unchecked yapip sonra ekleye tiklayinca unchecked olmasina ragmen ekliyor.
@foreach($permissions as $key=>$permission)
<li>
<div class="flex items-center"><div class="flex items-center h-5">
<input wire:model="permission_list.{{$permission->id }}" {{ in_array($permission->id, $permission_list) ? 'checked' : '' }} type="checkbox" class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded">
</div>
<div class="ml-3 text-sm">
<label for="permission_list[]" class="font-semibold text-gray-700">{{$permission->name}}</label>
</div>
</div>
</li>
Simdide livewire component kismi.
`class SetPermissions extends Component
{
public $roleID;
public $permission_list=[];
public $permission_ids=[];
protected $listeners = ['getRole'];
public function getRole($role_id)
{
$this->roleID=$role_id;
$role = Role::find($this->roleID);
$this->permission_ids=$role->permissions()->get()->pluck('id')->toArray();
}
public function confirm()
{
$this->permission_ids=array_keys($this->permission_list);
$role = Role::find($this->roleID);
$role->syncPermissions($permission_ids);
}
`