Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 菜单过滤器权限与Laratrust_Php_Laravel_Authentication_Laravel 5_Authorization - Fatal编程技术网

Php 菜单过滤器权限与Laratrust

Php 菜单过滤器权限与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

我正在使用AdminLTE和Lara创建一个MyMenu Filter.php文件,根据权限菜单过滤我的选项

adminlte.php

'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;
}