jQuery 添加 2 列的数据表

jQuery Datatables adding 2 columns

我正在尝试在 return 数据 (Yarja)

的 ajax 中使用以下代码添加两列
 public function AllUsersData(Request $request)
    {
       $us = DB::table('users')
            ->join('clients','users.client_id','=','clients.id')
            ->select('users.id as id','users.name as name','users.email as email','clients.companyName as company','users.active','users.operative','users.superAdmin')
            ->get();
       return Datatables::of($us)
       ->addColumn('action', function($pubs){
             $btn = '<div style="float:right"><i class="fas fa-book"></i></div>';
             return $btn;
        })
       ->addColumn('action2',function($pubs){
            $editBtn = '<div style="float:right"><i class="fas fa-edit"></i></div>';
            return $editBtn;
       })
        ->make(true);           
    }

这将使我能够用 link.

呈现每一列

我的问题是 return 错误地添加了第二个 addColumn。

这是正在return编辑的内容:

"id": "3",
"name": "Jim Elliott",
"email": "webmaster@tdbcomputing.com",
"company": "Associated Locks Ltd",
"active": "1",
"operative": "0",
"superAdmin": "1",
"action": "<div style=\"float:right\"><i class=\"fas fa-book\"></i></div>",
"action2": "&lt;div style=&quot;float:right&quot;&gt;&lt;i class=&quot;fas fa-edit&quot;&gt;&lt;/i&gt;&lt;/div&gt;"

如您所见,最后一列与前一列不同return

好的。我已经解决了。我在倒退思考!答案是 return 不同的数据然后重新渲染。我把它弄得太复杂了!

我的 ajax 通话(Laravel 使用 Yarja)现在

 public function AllUsersData(Request $request)
    {
       $us = DB::table('users')
            ->join('clients','users.client_id','=','clients.id')
            ->select('users.id as id','users.name as name','users.email as email','clients.companyName as company','users.active','users.operative','users.superAdmin')
            ->get();
       return Datatables::of($us)
       /*->addColumn('action', function($pubs){
             $btn = '<div style="float:right"><i class="fas fa-book"></i></div>';
             return $btn;
        })
       ->addColumn('action2',function($pubs){
            $editBtn = '<div style="float:right"><i class="fas fa-edit"></i></div>';
            return $editBtn;
       })*/
        ->make(true);

        
    }

我得到了两个用于编辑和显示的 URL 的名称:

$editR = url('admin/allUsers.edit');
$showR = url('admin/allUsers.show');

我必须将管理员添加到路由名称,我的视图现在有两个额外的列,这些列使用如下参数定义(在 colDefs 中):

 {
    "targets": 6,
    "data": "id",
    "render": function ( data, type, row, meta ) {
        return '<a href="{{ $editR }}/' + data + '" title="edit"><i class="fas fa-edit"></i></a>';
    }
  },
  {
    "targets": 7,
    "data": "id",
    "render": function ( data, type, row, meta ) {
        return '<a href="{{ $showR }}/' + data + '" title="detail"><i class="fas fa-book"></i></a>';
    }
  },