Laravel-datatables: [7.0] 不呈现 HTML

创建于 2017-01-27  ·  18评论  ·  资料来源: yajra/laravel-datatables

我正在使用 Laravel Datatables 7,但我的表格没有呈现 HTML 代码。 它以前渲染 HTML,但是当我将新的 Laravel DataTables 从 6 更新到 7 时,它停止在列中渲染 HTML。 http://prntscr.com/e11n84

这是 Laravel DataTables 6 - http://prntscr.com/e11ph0

最有用的评论

    return Datatables::of($this->users->getForDataTable($request->get('status'), $request->get('trashed')))
        ->editColumn('confirmed', function ($user) {
            return $user->confirmed_label;
        })
        ->addColumn('roles', function ($user) {
            return $user->roles->count() ?
                implode('<br/>', $user->roles->pluck('name')->toArray()) :
                trans('labels.general.none');
        })
        ->addColumn('actions', function ($user) {
           return $user->action_buttons;
        })
        ->rawColumns(['actions', 'confirmed'])
        ->withTrashed()
        ->make(true);

所有18条评论

结果在 v7 上默认转义。 尚未记录所有重大更改,但更改日志应提供一些线索。 谢谢!

如何在服务中解决相同的问题?

@brian2694使用新方法->rawColumns(['column_with_html'])

我有类似的问题,有任何使用 rawColumns 的例子吗?

    return Datatables::of($this->users->getForDataTable($request->get('status'), $request->get('trashed')))
        ->editColumn('confirmed', function ($user) {
            return $user->confirmed_label;
        })
        ->addColumn('roles', function ($user) {
            return $user->roles->count() ?
                implode('<br/>', $user->roles->pluck('name')->toArray()) :
                trans('labels.general.none');
        })
        ->addColumn('actions', function ($user) {
           return $user->action_buttons;
        })
        ->rawColumns(['actions', 'confirmed'])
        ->withTrashed()
        ->make(true);

好的!

也许允许

->rawColumns(['*'])

?

@divdax可能会尝试使用->escapeColumns([])来实现相同的结果。

非常感谢你,这很有帮助

->escapeColumns([]) 为我工作。 rawColumns('column_with_html') 没有。
使用 laravel 5.5 和 "yajra/laravel-datatables-oracle": "~8.0"

奈良,rawColumns 需要一个数组参数,所以它应该是 rawColumns(['column_with_html'])

如果希望在列中呈现视图,您可以这样做:

  ->editColumn('action', function(User $u){
       return view('users.action-btns', ['id'=>$u->id])->render();
  })

如果我正在编辑一个列以使用视图呈现它,那么默认情况下是否可以假设视图将被刀片完全转义,因此不需要再次转义? 使用视图编辑的列可以自动设置(默认情况下)为原始的,就像action列已经存在(尽管文档没有提到)。

我有同样的问题,我的朋友告诉我添加 ->escapeColumns([]) 和它的作品。

`if ($request->ajax()) {
$ajax = Datatables::of(Admin::query())->escapeColumns([])->make(true);
返回$ajax;
}

    $dataTable = $htmlBuilder
        ->addColumn(['data' => 'admin_id', 'name' => 'admin_id', 'class' => 'id-column', 'title' => 'Id', 'searchable' => false, 'render' => function () {
            $editUrl = route('backend.staff.edit', '');
            return "function(data,type,full,meta){ return '<a href=" . $editUrl . "/'+data+'>'+data+'</a>'; }";
        }])
        ->addColumn(['data' => 'username', 'name' => 'username', 'title' => trans('default.name'), 'class' => 'name-column', 'render' => function () {
            $editUrl = route('backend.staff.edit', '');
            return "function(data,type,full,meta){ return '<a href=" . $editUrl . "/'+full.admin_id+'>'+data+'</a>'; }";
        }])
        ->addColumn(['data' => 'ip_address', 'name' => 'ip_address', 'title' => trans('default.ip_address')])
        ->addColumn(['data' => 'last_login', 'name' => 'last_login', 'title' => trans('default.last_login'), 'class' => 'date-column', 'searchable' => false])
        ->addColumn(['data' => 'html_status', 'name' => 'html_status', 'title' => trans('default.status'), 'class' => 'status-column', 'searchable' => false])
        ->addAction(['data' => 'action_button', 'name' => 'action', 'title' => trans('default.action'), 'class' => 'actions-column'])`

@tonihidayt你明白escapeColumns([])是做什么的吗? 在我看来,它通过设置 NO 列来应用 HTML 转义来禁用所有 HTML 转义。 这可能是解决一个问题的一种简单方法,然后在其他情况下会导致您陷入危险境地。


->转义​​列([])

这对我来说是正确的。

我同意@judgej 。 我不想冒险转义所有列,但我想要制作原始的是一个访问器,并且不会产生带有$datatables->rawColumns(['full_link']);的原始结果

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

shadoWalker89 picture shadoWalker89  ·  3评论

t0n1zz picture t0n1zz  ·  3评论

alejandri picture alejandri  ·  3评论

jgatringer picture jgatringer  ·  3评论

hohuuhau picture hohuuhau  ·  3评论