Lat*_*san 5 ajax datatable laravel laravel-5
我正在使用这个包https://datatables.yajrabox.com/starter在我的laravel应用程序中实现ajax数据表.
在我的控制器类中,我有以下方法来返回数据表的数据,如下所示:
function ajaxList()
{
// Load users with users
$users = User::with('group', 'organisation');
// Finished
return Datatables::eloquent($users)
->editColumn('is_admin', function(User $user) {
return '<i class="fa fa-'. ($user->is_admin ? 'check' : 'times') .'" aria-hidden="true"></i>';
})
->make(true);
}
Run Code Online (Sandbox Code Playgroud)
在视图中,我渲染表并启动ajax请求,如下所示:
<table id="users-table" class="table table-hover table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>User ID</th>
<th>Is Admin?</th>
<th>First Name</th>
<th>Last Name</th>
<th>Created At</th>
<th>Updated At</th>
<th>Action</th>
</tr>
</thead>
</table>
<script>
$('#users-table').DataTable({
processing: true,
serverSide: true,
ajax: '/users/ajaxList',
columns: [
{data: 'id', searchable: false },
{data: 'is_admin', searchable: false },
{data: 'first_name'},
{data: 'last_name'},
{data: 'created_at', searchable: false },
{data: 'updated_at', searchable: false },
{data: 'action', searchable: false, orderable: false }
]
});
</script>
Run Code Online (Sandbox Code Playgroud)
当这个呈现时,"is_admin"列显示为显示原始html而不是像这样渲染字体真棒图标:
任何想法如何解决这一问题?我也试着像这样返回列数据:
return '{!! <i class="fa fa-'. ($user->is_admin ? 'check' : 'times') .'" aria-hidden="true"></i> !!}';
Run Code Online (Sandbox Code Playgroud)
这也没有帮助.
Lat*_*san 14
好的,这个问题似乎是新的7.x版本的库中没有文档的重大变化:https://github.com/yajra/laravel-datatables/issues/949
就我而言,我已经修好了这样:
function ajaxList()
{
// Load users with users
$users = User::with('group', 'organisation');
// Finished
return Datatables::eloquent($users)
->editColumn('is_admin', function(User $user) {
return '<i class="fa fa-'. ($user->is_admin ? 'check' : 'times') .'" aria-hidden="true"></i>';
})
->rawColumns(['is_admin'])
->make(true);
}
Run Code Online (Sandbox Code Playgroud)
只需将您的专栏放在打击方法中
转义列()
例子
return $dataTable->addIndexColumn()
->editColumn('active', function(SettingDropdownValue $model) {
if($model->active === true){
return '<span class="text-center"><img src="'.\URL::asset('/images/active.png').'" border="0" width="15" /></span>';
} else {
return '<img src="'.\URL::asset('/images/inactive.png').'" border="0" width="15" />';
}
})
->escapeColumns('active')
->addColumn('action', 'setting_dropdown_values.datatables_actions');
Run Code Online (Sandbox Code Playgroud)
小智 5
我现在正在开发一个项目,面临同样的问题并使用修复它->escapeColumns([])
$users = DB::table('users')->select('*');
return datatables()->of($users)
->removeColumn('password')
->editColumn('created_at', function ($user) {
return date('d-m-Y', strtotime($user->created_at));
})
->editColumn('role_id', function ($user) {
return Role::findOrFail( $user->role_id)->name;
})
->editColumn('is_active', function ($user) {
return ($user->is_active == 1) ? 'active' : 'suspended';
})
->addColumn('actions', function ($user) {
return '<a href="#edit-'.$user->id.'" class="btn btn-xs btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a>';
})
->escapeColumns([])
->make(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4415 次 |
| 最近记录: |