使用 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
}
...
我的数据库中有 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
}
...