2016-09-29 2 views
1

私はAdminLTEを使用しています。Lara EntrustはMyMenu Filter.phpファイルを作成して、権限メニューに従って自分のオプションをフィルタしました。Laratrustでのメニューフィルタの許可

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

"ブログ" メニューのマイオプション作成ポストを許可が必要です。しかし、mymenufilter.phpの "if"はfalseを返し、メニューを作成しません。

しかし、ユーザーが持っていないアクセス許可を置くと、それが表示されます。

答えて

0

私はあなたがロジックを後方に持っていると思います。ユーザーが許可を使用できない場合は、falseを返す必要があります。私はaを加えました!以下のif文では(not)です。これで問題は解決するはずです

public function transform($item, Builder $builder) 
{ 
    if (isset($item['permission']) && !\Laratrust::can($item['permission'])) { 
     return false; 
    } 

    return $item; 
}