Mar*_*m54 26 laravel blade laravel-5.1 laravel-blade
我没有找到如何在@can视图中使用子句(OR,AND)来检查多个异能......
我试过了:
@can(['permission1', 'permission2'])
@can('permission1' or 'permission2')
@can('permission1' || 'permission2')
Run Code Online (Sandbox Code Playgroud)
但是不行;(
tom*_*mmy 33
您可以使用门面:
@if(Gate::check('permission1') || Gate::check('permission2'))
@endif
Run Code Online (Sandbox Code Playgroud)
Jas*_*ers 19
@canany刀片指令已于2018年5月24日添加到Laravel v.5.6.23中
用法:
@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
Run Code Online (Sandbox Code Playgroud)
我在Laravel 5.4应用程序中添加了这个指令,允许我@canany('write|delete')
在刀片视图中使用新指令.
// 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; ?>';
});
Run Code Online (Sandbox Code Playgroud)
刀片视图中的示例:
@canany('write|create')
...
@endcanany
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16988 次 |
最近记录: |