0

https://yajrabox.com/docs/laravel-datatables/master/edit-column示例说

$model = App\User::query();
return DataTables::eloquent($model)
    ->addColumn('intro', function(User $user) {
        return 'Hi ' . $user->name . '!';
    })
    ->toJson();

不知道用户是谁?像 $User 一样的 User 吗?用户是每一行?

所以我尝试

$search_alls=
    DB::table('a16')
        ->select('*')
        ->where('name','=','john')
        ->get();

return DataTables::collection($search_alls)
    ->addColumn('newclass', function(User $user) {
        return 'Hi ' . $user->id . '!';
    })
    ->toJson();

我得到了常见的错误

DataTables 警告:table id=users-table - Ajax 错误。有关此错误的更多信息,请参阅http://datatables.net/tn/7

如何在添加或编辑列上使用闭包?我想使用 if 条件为类添加一个列值以显示图标。

下面是编辑示例,我仍然不知道如何使用,因为我不知道哪个是 use 或 $user?谁能为我解释一下?谢谢~

use DataTables;

Route::get('user-data', function() {
    $model = App\User::query();

    return DataTables::eloquent($model)
        ->editColumn('name', function(User $user) {
            return 'Hi ' . $user->name . '!';
        })
        ->toJson();
});
4

2 回答 2

0

尝试这个:

$data = App\User::select('*')
                ->where('name','=','john');

return DataTables::collection($data)
                 ->addColumn('newclass', function($data) {
                      return 'Hi ' . $data->name . '!';
                 })
                 ->toJson();

另外请记住,如果您尝试显示 HTML 内容,则需要将创建的列的名称(在本例中为“newclass”)添加到数据表配置文件的“原始”参数中。让我知道这是否有帮助!

于 2018-11-19T20:40:30.250 回答
0

你了解 escapeColumns([]) 的作用吗?

在我看来,它通过设置 NO 列来应用 HTML 转义来禁用所有 HTML 转义。这可能是解决一个问题的一种简单方法,然后在其他情况下会导致您陷入危险境地。

在 addColumn 之后附加escapeColumns([])

->addColumn(){...}
->escapeColumns([])
于 2021-05-11T12:54:53.137 回答