öncelikle create_permission_table
migration dosyanda permissions
tablosuna bir kolon eklemen gerekiyor. group_name
diye eklediğimiz varsayalım.
Schema::create($tableNames['permissions'], function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name'); // For MySQL 8.0 use string('name', 125);
$table->string('guard_name'); // For MySQL 8.0 use string('guard_name', 125);
$table->string('group_name');
$table->string('description');
$table->timestamps();
$table->unique(['name', 'guard_name']);
});
permissionları blade e gruplayıp gönderiyoruz.
$groupedPermissions = Permission::all()->groupBy('group_name');
return view('role.create', compact('groupedPermissions'));
create.blade.php
@foreach($groupedPermissions as $groupName => $perms)
<div class="col-md-3 mb-2">
<div class="n-chk">
<label class="new-control new-checkbox new-checkbox-text checkbox-primary font-weight-bolder">
<input type="checkbox" class="new-control-input" wire:model="selectGroup.{{ $groupName }}" value="{{ $groupName }}">
<span class="new-control-indicator"></span><span class="new-chk-content">Tümünü Seç</span>
</label>
</div>
@foreach($perms as $permission)
<div class="n-chk">
<label class="new-control new-checkbox new-checkbox-text checkbox-primary">
<input type="checkbox" class="new-control-input {{ $groupName }}" wire:model="permissions" value="{{ $permission->id }}">
<span class="new-control-indicator"></span><span class="new-chk-content">{{ $permission->description }}</span>
</label>
</div>
@endforeach
</div>
@endforeach
aynısına benim de ihtiyacım olmuştu. direk kendi kodlarımı ilettim. umarım faydası olur.
benlivewire ile yaptığım için blade kodlarında wire
kodları görebilirsin. livewire kullanmıyorsan wire:model="permissions"
yerine name='permissions'
kullanabilirsin.
<input type="checkbox" class="new-control-input" wire:model="selectGroup.{{ $groupName }}" value="{{ $groupName }}">
bu inputu toplu seçme için kullanıyorum.