I did not find how to use a clause (OR, AND) in view with @can, for checking multiple abilities ...
I tried:
@can([\'permission1\', \'permission2\'])
@c
I've added this directive in my Laravel 5.4 app that allows me to use a new @canany('write|delete')
directive in my blade views.
// AppServiceProvider.php@boot()
Blade::directive('canany', function ($arguments) {
list($permissions, $guard) = explode(',', $arguments.',');
$permissions = explode('|', str_replace('\'', '', $permissions));
$expression = "check() && ( false";
foreach ($permissions as $permission) {
$expression .= " || auth({$guard})->user()->can('{$permission}')";
}
return $expression . ")): ?>";
});
Blade::directive('endcanany', function () {
return '';
});
Example in blade view:
@canany('write|create')
...
@endcanany
Here's the doc for extending Blade on 5.4