laravel-adminで権限によって表示内容を制御する方法

Laravel logo Laravel

laravel-adminは、permissionによって、アクセスできるルートを設定できるようになっていますが、表示内容の出し分けは別の対応が必要になります。
その例をいくつか紹介します。

Gridの一覧などでの利用

一覧でログインしているユーザによって表示を制限する例

$grid = new Grid(new SampleModel());

if(!empty(Admin::user())) {
    // ログインアドバイザーに関連するもののみ
    $grid->model()->where('admin_id', Admin::user()->id);

    $grid->actions(function (\Encore\Admin\Grid\Displayers\Actions $actions) {
        $actions->disableDelete();
    });
}

テンプレートで出し分けで利用

@if(Admin::user()->isAdministrator())
<a href="{{ route('admin.introductions.index', ['user_id' => $user->id]) }}" class="btn btn-default">紹介履歴</a>
@endif

参考サイト
https://qiita.com/mgmgmogumi/items/70fc1129e2293d071d8e

タイトルとURLをコピーしました