Mam problemy próbujące wyświetlić listę uprawnień z bazy danych, a następnie próbując edytować rolę i jej uprawnień, nie mogę uzyskać formularza, aby uzyskać uprawnienia przypisane do roli do sprawdzenia.

PHP:

public $role;

public $permissions

public $permissionList;

public function render(PermissionService $permissionService)
{
    $this->permissionList = $permissionService->getPermissions();
    $this->permissions = $permissionService->getRolePermissions($this->role);

    return view('livewire.roles.edit');
}

WIDOK:

@foreach($permissionList as $key => $permission)
       <div class="form-row">
            <div class="form-group col-md-6 h5">
                {{ ucfirst($key) }}
             </div>
            <div class="form-group col-md-6">
            @foreach($permission as $item)
               <div>
                 <input type="checkbox" id="{{ $item['id'] }}" name="{{ $item['id'] }}" value="{{ $item['id'] }}" wire:model="permissions.{{ $item['id'] }}"/> {{ ucfirst($item['name']) }}
               </div>
             @endforeach
         </div>
         <hr/>
    </div>
   @endforeach

Tablica zezwolenia:

array:4 [▼
  "administration" => array:1 [▼
    0 => array:2 [▼
      "id" => 15
      "name" => "preferences"
    ]
  ]
  "users" => array:5 [▼
    1 => array:2 [▼
      "id" => 16
      "name" => "view"
    ]
    2 => array:2 [▼
      "id" => 17
      "name" => "create"
    ]
    3 => array:2 [▼
      "id" => 18
      "name" => "edit"
    ]
    4 => array:2 [▼
      "id" => 19
      "name" => "delete"
    ]
    5 => array:2 [▼
      "id" => 20
      "name" => "impersonate"
    ]
  ]

Wprowadziłem tablicę listy uprawnień, aby mieć kategorię i uprawnienia przypisane do tej kategorii, wyłącznie do celów wyświetlania.

Próbowałem dokonać uprawnień $ tak samo jak tablica listy, a także zezwolenie na $ = ['Uprawnienia.15']; lub $ pozwolenie = [15] itp., Ale nie mogę wybrać uprawnień do zmiany do roli.

Każda pomoc byłaby bardzo mile widziana. Dzięki

1
Louwki 27 październik 2020, 11:07

1 odpowiedź

Najlepsza odpowiedź

Ok, tylko musiałem zrobić zwróconą tablicę, użyj identyfikatora jako indeksu, a następnie nie musisz robić foreach dla sprawdzonych i wszystko działa zgodnie z oczekiwaniami.

array:4 [▼
  "administration" => array:1 [▼
     15 => array:2 [▼
        "name" => "preferences"
     ]
  ]
  "users" => array:5 [▼
     16 => array:2 [▼
        "name" => "view"
     ]
     17 => array:2 [▼
        "name" => "create"
     ]
     18 => array:2 [▼
        "name" => "edit"
     ]
     19 => array:2 [▼
        "name" => "delete"
     ]
   ]
]

Widok:

@foreach($permissionList as $key => $permission)
   <div class="form-row">
        <div class="form-group col-md-6 h5">
            {{ ucfirst($key) }}
         </div>
        <div class="form-group col-md-6">
         @foreach($permission as $index => $item)
           <div>
              <input type="checkbox" id="{{ $index }}" name="{{ $index }}" value="1" wire:model="permissions.{{ $key }}.{{ $index }}"/> {{ ucfirst($item['name']) }}
            </div>
         @endforeach
     </div>
     <hr/>
</div>
@endforeach
0
Louwki 3 listopad 2020, 08:11