Laravel Blade @can funktioniert nicht, aber in_array (auth :: user ()-> getAllpermissions ()) tut esPhp

PHP-Programmierer chatten hier
Anonymous
 Laravel Blade @can funktioniert nicht, aber in_array (auth :: user ()-> getAllpermissions ()) tut es

Post by Anonymous »

Ich arbeite an einem Laravel 11-Projekt mit dem Laravel-Genehmigungspaket von Spatie für eine rollenbasierte Zugriffskontrolle.

Code: Select all

`@php
$userPermissions = Auth::user()->getAllPermissions()->pluck('name')-    >toArray();
@endphp

@if(in_array('view_permission_categories', $userPermissions))
[*]
Permission Categories

@endif

@can('view_permission_categories')
[*]
Permission Categories

@endcan
< /code>
`< /p>
Das Problem:
Die Bedingung @if (in_array (...)) funktioniert wie erwartet, und der Link erscheint. in_array (auth :: user ()-> getAllpermissions ()-> pfluck ('name')-> toarray () funktioniert?
Wie kann ich debuggen, warum @can die Erlaubnis nicht erkennt? Probiert: < /p>

 Überprüft, ob der Benutzer die Berechtigung hat:
dd(Auth::user()->can('view_permission_categories')); < /code> < /li>
< /ol>
2.Ensured-Rollen und -Remmulierungen werden geladen:
$ currentUser = auth :: user ()-> load ('roles.permission'); /> PHP Artisan Config: Clear
PHP Artisan Ansicht: Clear
PHP Artisan Route: Clear
PHP Artisan Erlaubnis: cache-reset`use Illuminate\Support\Facades\Gate;
public function boot()
{
Gate::define('view_permission_categories', function ($user) {
return $user->hasPermissionTo('view_permission_categories');
});
}
`

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post