section scripts plantillas for example descargar content ciclo laravel laravel-5.1 blade laravel-blade

scripts - Laravel 5.1 @can, como usar la cláusula OR



laravel section yield (5)

No encontré cómo usar una cláusula (OR, AND) en vista con @can, para verificar múltiples habilidades ...

Lo intenté:

@can([''permission1'', ''permission2'']) @can(''permission1'' or ''permission2'') @can(''permission1'' || ''permission2'')

Pero no trabajes;


He agregado esta directiva en mi aplicación Laravel 5.4 que me permite usar una nueva @canany(''write|delete'') en mis vistas de blade.

// AppServiceProvider.php@boot() Blade::directive(''canany'', function ($arguments) { list($permissions, $guard) = explode('','', $arguments.'',''); $permissions = explode(''|'', str_replace(''/''', '''', $permissions)); $expression = "<?php if(auth({$guard})->check() && ( false"; foreach ($permissions as $permission) { $expression .= " || auth({$guard})->user()->can(''{$permission}'')"; } return $expression . ")): ?>"; }); Blade::directive(''endcanany'', function () { return ''<?php endif; ?>''; });

Ejemplo en vista de blade:

@canany(''write|create'') ... @endcanany

Aquí está el documento para extender Blade en 5.4


La directiva @canany blade se agregó a Laravel v.5.6.23 el 24 de mayo de 2018

Uso:

@canany([''edit posts'', ''delete posts'']) <div class="actions"> @can(''edit posts'') <button>Edit post</button> @endcan @can(''delete posts'') <button>Delete post</button> @endcan </div> @endcanany


Puedes llamar a @can varias veces.

@if (@can (''permission1'') || @can (''permission2''))

@if( Gate::check(''permission1'') || Gate::check(''permission2'') )


Puedes usar la fachada de la puerta:

@if(Gate::check(''permission1'') || Gate::check(''permission2'')) @endif


Utilice el método can en Authenticated User ,

@if ( Auth::user()->can(''permission1'', App/Model::class) || Auth::user()->can(''permission2'', App/Model::class) ) @endif