Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Merhabalar;

Spatie Role Permission paketi kullanıyorum

resimdeki gibi listeli halden

bu şekilde gruplu halde nasıl getirebilirim?

Saygılarımla

  • ZATRANO bunu yanıtladı.
  • furkanaksoy hakanylmz
    Furkan Bey'in paylaşımını .blade sayfanızda aşağıdaki şekilde kullanabilirsiniz.

    <div class="row">
    @foreach($permissionGroups as $groupName => $permissions)
    <div class="col-sm-3">
        <h6>{{ $groupName }}</h6>
        @foreach ($permissions as $value)
        <label>
            @if (isset($role))
            {{ Form::checkbox('permission[]', $value->id, in_array($value->id, $rolePermissions) ? true : false, ['class' => 'name']) }} {{ $value->name }}
            @else
            {{ Form::checkbox('permission[]', $value->id, false, ['class' => 'name']) }} {{ $value->name }}
            @endif
        </label>
        <br>
    @endforeach
    </div>
    @endforeach
    </div>

    ö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.

      furkanaksoy hakanylmz
      Furkan Bey'in paylaşımını .blade sayfanızda aşağıdaki şekilde kullanabilirsiniz.

      <div class="row">
      @foreach($permissionGroups as $groupName => $permissions)
      <div class="col-sm-3">
          <h6>{{ $groupName }}</h6>
          @foreach ($permissions as $value)
          <label>
              @if (isset($role))
              {{ Form::checkbox('permission[]', $value->id, in_array($value->id, $rolePermissions) ? true : false, ['class' => 'name']) }} {{ $value->name }}
              @else
              {{ Form::checkbox('permission[]', $value->id, false, ['class' => 'name']) }} {{ $value->name }}
              @endif
          </label>
          <br>
      @endforeach
      </div>
      @endforeach
      </div>

        ZATRANO furkanaksoy ellerinize emeğinize sağlık 🙂. Furkan dostumun mükemmel ortasını zatrano şık bir kafa vuruşuyla gole çevirdi. Tamda html collective paketi için nasıl uyarlarım diye soracaktım gerek kalmadı. Ben bu siteyi seviyorum ya 🙂