Php 菜单过滤器权限与Laratrust
我正在使用AdminLTE和Lara创建一个MyMenu Filter.php文件,根据权限菜单过滤我的选项 adminlte.phpPhp 菜单过滤器权限与Laratrust,php,laravel,authentication,laravel-5,authorization,Php,Laravel,Authentication,Laravel 5,Authorization,我正在使用AdminLTE和Lara创建一个MyMenu Filter.php文件,根据权限菜单过滤我的选项 adminlte.php 'menu' => [ 'MAIN NAVIGATION', [ 'text' => 'Blog', 'url' => 'admin/blog', 'permission' => 'create-post', ], // CODE... ], 'fil
'menu' => [
'MAIN NAVIGATION',
[
'text' => 'Blog',
'url' => 'admin/blog',
'permission' => 'create-post',
],
// CODE...
],
'filters' => [
// CODE...
App\MyMenuFilter::class,
],
MyMenuFilter.php
<?php
namespace App;
use JeroenNoten\LaravelAdminLte\Menu\Builder;
use JeroenNoten\LaravelAdminLte\Menu\Filters\FilterInterface;
class MyMenuFilter implements FilterInterface
{
public function transform($item, Builder $builder)
{
if (isset($item['permission']) && \Laratrust::can($item['permission'])) {
return false;
}
return $item;
}
}
我想你只是把逻辑颠倒过来了。如果用户无法使用权限,则应返回false。我加了一个!(非)在下面的if声明中。这会解决你的问题
public function transform($item, Builder $builder)
{
if (isset($item['permission']) && !\Laratrust::can($item['permission'])) {
return false;
}
return $item;
}
我想你只是把逻辑颠倒了。如果用户无法使用权限,则应返回false。我加了一个!(非)在下面的if声明中。这会解决你的问题
public function transform($item, Builder $builder)
{
if (isset($item['permission']) && !\Laratrust::can($item['permission'])) {
return false;
}
return $item;
}