我使用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
答案 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 .= ' <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 .= ' <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);