Zizaco / entrust 在 blade 中使用@permission 抛出错误
Zizaco / entrust throws error with @permission in blade
我正在为 role-base 访问控制 (RBAC) 使用软件包 Zizaco / entrust
。
用户角色使用 @permission
签入视图,同样,
@permission('role-create')
<a class="btn btn-success" href="{{ route('roles.create') }}"> Create New Role</a>
@endpermission
等于,
<?php if (\Entrust::can'role-create') : ?>
<a class="btn btn-success" href="<?php echo route('roles.create'); ?>"> Create New Role</a>
<?php endif; // Entrust::can ?>
但它抛出以下错误:
Parse error: syntax error, unexpected ''role-create'' (T_CONSTANT_ENCAPSED_STRING) (View: /var/www/rbac/resources/views/roles/index.blade.php)
这是包中的错误,但您可以在您的项目中修复它
转到 vendors 目录,找到一个委托目录,然后从那里转到 src/Entrusts/EntrustServiceProvider.php
您可以找到如下所示的 blade 指令代码
\Blade::directive('permission', function($expression) {
return "<?php if (\Entrust::can({$expression}) : ?>";
});
您看到缺少一个起始括号,可以像下面这样简单地添加该起始括号
\Blade::directive('permission', function($expression) {
return "<?php if (\Entrust::can({$expression})) : ?>";
});
或使用两个括号。像这样:
@permission(('role-edit')) @endpermission
更多信息请查看下方link
https://github.com/Zizaco/entrust/issues/657
注意: 在 Laravel 的早期版本中,当使用指令方法注册自定义 Blade 指令时,传递给指令回调的 $expression 包含outer-most 括号。在 Laravel 5.3 中,这些 outer-most 括号不包含在传递给指令回调的表达式中。请务必查看 Blade 扩展文档并确认您的自定义 Blade 指令仍在正常工作。
只需将您的权限名称上的小括号加倍即可解决我的问题
@permission(('role-create'))
<a class="btn btn-success" href="{{ route('roles.create') }}"> Create New Role</a>
@endpermission
我正在为 role-base 访问控制 (RBAC) 使用软件包 Zizaco / entrust
。
用户角色使用 @permission
签入视图,同样,
@permission('role-create')
<a class="btn btn-success" href="{{ route('roles.create') }}"> Create New Role</a>
@endpermission
等于,
<?php if (\Entrust::can'role-create') : ?>
<a class="btn btn-success" href="<?php echo route('roles.create'); ?>"> Create New Role</a>
<?php endif; // Entrust::can ?>
但它抛出以下错误:
Parse error: syntax error, unexpected ''role-create'' (T_CONSTANT_ENCAPSED_STRING) (View: /var/www/rbac/resources/views/roles/index.blade.php)
这是包中的错误,但您可以在您的项目中修复它 转到 vendors 目录,找到一个委托目录,然后从那里转到 src/Entrusts/EntrustServiceProvider.php
您可以找到如下所示的 blade 指令代码
\Blade::directive('permission', function($expression) {
return "<?php if (\Entrust::can({$expression}) : ?>";
});
您看到缺少一个起始括号,可以像下面这样简单地添加该起始括号
\Blade::directive('permission', function($expression) {
return "<?php if (\Entrust::can({$expression})) : ?>";
});
或使用两个括号。像这样:
@permission(('role-edit')) @endpermission
更多信息请查看下方link
https://github.com/Zizaco/entrust/issues/657
注意: 在 Laravel 的早期版本中,当使用指令方法注册自定义 Blade 指令时,传递给指令回调的 $expression 包含outer-most 括号。在 Laravel 5.3 中,这些 outer-most 括号不包含在传递给指令回调的表达式中。请务必查看 Blade 扩展文档并确认您的自定义 Blade 指令仍在正常工作。
只需将您的权限名称上的小括号加倍即可解决我的问题
@permission(('role-create'))
<a class="btn btn-success" href="{{ route('roles.create') }}"> Create New Role</a>
@endpermission