使用 Laravel8/ajax 在 DataTable 上显示加密密码

Display encrypted password on DataTable using Laravel8/ajax

我的数据库中有 table 列密码加密。

我正在尝试在数据table上显示数据,我正在使用以下代码:

    if (!$.fn.DataTable.isDataTable('.data-table-standard')) {
/**************afficher les données **********************/
    var table = $('.data-table-standard').DataTable({
        processing: true,
        serverSide: true,
        ajax:{
         url: "{{ route('users.getdata') }}",
        },
        columns:[
        
         {data:'name',
          name: 'name'
         },
         {data:'email',
          name: 'email'
         },
         {
            data:'password',
            name: 'password',
            type: "password",
            "visible": false

         },
         {data:'filiale',
          name: 'filiale'
         },
         {data:'display_name',
          name: 'display_name'
         },
         {
          data: 'action',
          name: 'action',
          orderable: false
         }
        ] 
       });
       
}

控制器:

     function getdata(Request $request)
{

    if(request()->ajax())
        
    {

       if (Auth::user()->hasRole('admin')){

                         return datatables()->of(User::leftjoin('role_user','users.id','=','role_user.user_id')->leftjoin('roles','roles.id','=','role_user.role_id')->leftjoin('filiales','filiales.id_filiale','=','users.id_filiale')->get())
            ->addColumn('action', function($data){
                $button = '<table><tr><td>';
                        $button .= '<button type="button" name="edit" id="'.$data->id.'" class="edit btn btn-primary btn-sm">Modifier</button>';
                        
                $button .= '</td><td>';
                $button .= ' <label  class="switch" >';
                       $button .= '  <input type="checkbox" id="'.$data->id.'" class="switch selectRow" ';
                 
                        
                
                if ($data->actif == 1) {

                    $button .= "checked";
                }

                $button .= '><span class="slider round"></span></label>';
                $button .= '</td></tr></table>';

                return $button;
        })
        ->rawColumns(['action'])
        ->make(true);

        }

       
    }

    return view('Users.users');
}

但我收到以下错误:

DataTables warning: table id=DataTables_Table_0 - Requested unknown parameter 'password' for row 0, column 2. For more information about this error, please see http://datatables.net/tn/4

如何在数据table上显示加密后的密码?否则如何在 datatable ?

上显示用户密码

如果你有任何想法,请帮助。

为了安全Laravel隐藏了密码,

显示密码的快捷方式,转到User模型

// User.php

...
    protected $hidden = [
        // 'password', // comment this line or remove it
        'remember_token',
    ];
...

另一种方式比上面的更好,

添加属性

//User.php
...
public function getUserPasswordAttribute()
{
   return $this->password;
}
...

Controller@getdata 之后 get() 添加这个 ->append('userPassword')

...
return datatables()->of(User::leftjoin('role_user','users.id','=','role_user.user_id')->leftjoin('roles','roles.id','=','role_user.role_id')->leftjoin('filiales','filiales.id_filiale','=','users.id_filiale')->get()->append('userPassword'))
...

在 JS DataTable 中将 password 更改为 userPassword

...
{
  data:'userPassword',
  name: 'userPassword',
  type: "password",
  "visible": false
}
...