Bonjour à tous,
J'ai fait une installation fraîche de Laravel dans laquelle j'ai combiné Jetstream-livewire et Spatie Permission en suivant ce tutoriel : "https://geisi.dev/blog/combining-laravel-jetstream-with-spatie-permissions/"
J'ai suivi ce tuto à la lettre donc, j'ai 3 rôles : Admin, Editor, Member et 4 permissions : view, create, update, delete.
Tout fonctionne correctement pour l'instant. A vrai dire, je n'ai pas encore regardé la gestion des rôles et des permissions. Bref !
Je commence a réaliser mon interface en voulant gérer les rôles et les permissions et pour cela, j'ai créé un composant livewire qui s'appelle : RolesShow.
L'idée est de pouvoir afficher un tableau avec les rôles et pour chaque rôles un sous tableau listant chaque permission.
J'ai donc créé un composant livewire dans lequel j'ai une fonction publique qui me retourne une collection qui contient, vraisemblablement, toutes les informations dont j'ai besoin mais je ne sais pas comment l'afficher.
Voici ma fonction :
`
class RolesShow extends Component
{
public function mount()
{
$this->role_permissions = Role::with('permissions')->get();
}
`
Et pour l'afficher dans ma page, j'ai une boucle foreach...
@foreach ($role_permissions as $role) <p>{{ $role->name }}</p> @endforeach
Quand j'appelle ma page, j'ai bien :
Admin
Editor
Member
Je souhaiterais pouvoir afficher plutôt :
Admin
view
create
update
delete
Editor
view
create
update
Member
view
La où je pêche, c'est pour lire le contenu de ma collection pour mon array 'Admin' dans ma collection, je ne sais pas comment le traduire en php.
J'espère avoir été clair dans mon explication et dans ce que je souhaite obtenir et que vous pourrez m'aider.
Merci d'avance pour votre aide.
Et bien je me réponds...
J'ai trouvé enfin la solution...
@foreach ($role_permissions as $role)
<p>{{ $role->name }}</p>
@foreach ($role->permissions as $permission)
<p>{{ $permission->name }}</p>
@endforeach
@endforeach
J'ai simplement créé une nouvelle boucle sur ce que je pense être la clé de ma collection.