Yajra Datatables和Entrust包

时间:2017-08-22 09:07:06

标签: php laravel datatables package

我使用Zizaco Entrust包和yajra数据表来处理基于角色的权限。 当我向某些用户授予权限时,我也必须触摸数据表。 这是我的代码,

   Controller.php
             Datatables::of(User::where('company_id',$company_id)->get())
                ->addColumn('action', '@permission('user-edit')
    <a href="{{route("users.show",$id)}}" class="btn btn-xs btn-info">View</a>@endrole
            <a href="{{route("users.edit",$id)}}" class="btn btn-xs btn-primary">Edit</a>')
           ->make(true);

当我在数据表中使用权限时会出现错误,任何有想法解决这个问题的人都会遇到错误 yajra datatables and entrust role permission laravel

3 个答案:

答案 0 :(得分:0)

Entrust::can()检查用户是否已登录,然后检查用户是否具有该权限。如果用户未登录,则返回也将为false。

检查以下代码:

Datatables::of(User::where('company_id',$company_id)->get())
    ->addColumn('action', function($company){
        $action = '';
        if (!Entrust::can('user-edit')) {
            $action = '<a href="' . route("users.show",$id) . '" class="btn btn-xs btn-info">View</a>';
        }
        $action .= '<a href="' . route("users.edit",$id) . '" class="btn btn-xs btn-primary">Edit</a>';
        return $action;
    })
->make(true);

{{}}和引号问题的代码进行了更正。希望这对你有用!

答案 1 :(得分:0)

您也可以遵循此技术

->addColumn('actions', function($admin) {
    return  view('admin.user.partials.admin_action', compact('admin'))->render();
})

在刀片admin_action中,您可以按如下方式编写视图代码

@permission("admin-edit")
<a href="#" title="Edit"
class="btn-sm btn-primary editData"
data-id="{{ $admin->id }}"
data-fname="{{ $admin->f_name }}"
data-lname="{{ $admin->l_name }}"
data-email="{{ $admin->email }}"
data-redeem_manager="{{ $admin->redeem_manager }}"
data-mobile="{{ $admin->mobile }}"
data-role_id="{{ $admin->role_id }}"
><i class="fa fa-edit"></i> </a>
@endpermission

答案 2 :(得分:0)

Entrust :: can()无法与我一起使用会导致错误。

但是\ Auth :: user()-> can('user-edit')与我配合很好

return datatables()->of($data)
                ->addColumn('actions', function ($data) {
                    $button = '<a class="btn btn-sm btn-info" href="' . route('users.show', $data->id) . '" >Show <i class="fa fa-eye"></i></a>';
                    if (\Auth::user()->can('user-edit')) {
                        $button .= '&nbsp;&nbsp;&nbsp;<a class="btn btn-sm btn-primary" href="' . route('users.edit', $data->id) . '" >Edit <i class="fa fa-edit"></i></a>';
                    }
                    if (\Auth::user()->can('user-delete')) {
                        $button .= '&nbsp;&nbsp;&nbsp;<a id="' . $data->id . '" class="delete btn btn-sm btn-danger" href="#" >Delete <i class="fa fa-trash"></i></a>';
                    }
                    return $button;
                })
                ->rawColumns(['actions'])
                ->make(true);