【问题标题】:Admin LTE with Laratrust使用 Laratrust 管理 LTE
【发布时间】:2016-09-29 03:26:36
【问题描述】:

我正在使用 Laratrust 并尝试工具: 我创建了这些文件

App\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;
    }
}

我改变了这个 配置\adminlte.php

'menu' => [
    'MAIN NAVIGATION',
    [
        'text' => 'Blog',
        'url'  => 'admin/blog',
        'permission'  => 'create-post', // Here
    ],
    #code
]

'filters' => [
    #code
    //JeroenNoten\LaravelAdminLte\Menu\Filters\GateFilter::class,
    App\MyMenuFilter::class,
],

但是显示这个错误:

找不到类“App\Laratrust”(查看:/var/www/html/multi-auth/vendor/jeroennoten/laravel-adminlte/resources/views/page.blade.php)

【问题讨论】:

    标签: php laravel authentication laravel-5 laravel-5.2


    【解决方案1】:

    最简单的方法

    if (isset($item['permission']) && \Laratrust::can($item['permission'])) {
                return false;
    }
    

    或者你可以

    use Laratrust;
    
    if (isset($item['permission']) && Laratrust::can($item['permission'])) {
          return false;
    }
    

    use 语句应该在类定义之前的顶部,并且条件显然在你的方法中

    看起来 Laratrust 是一个位于供应商目录中的包,这就是为什么尝试在 \App 位置下获取它会引发错误的原因。

    【讨论】:

      【解决方案2】:

      你没有在你的命名空间中导入App\Laratrust。将use App\Laratrust; 添加到您的班级顶部,它应该可以工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多