【问题标题】:Yajra Datatables and Entrust packageYajra 数据表和委托包
【发布时间】:2020-06-18 22:57:39
【问题描述】:

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

   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

【问题讨论】:

    标签: php laravel datatables package


    【解决方案1】:

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

    {{}} 和引号问题的代码进行了更正。

    【讨论】:

    • 是的,它对我有用.. 感谢您的回复.. !!
    【解决方案2】:

    你也可以遵循这个技巧

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-11
        • 2019-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多