2

我有一个系统,可以显示系统所有可用用户的数据,并具有搜索功能。我已经通过使用 yajra 数据表包来做到这一点。我想要的是,如果有人点击将重定向到该用户个人资料的一行用户。这是控制器代码

public function getUsers(){
    return DataTables::of(User::query()->with('profile'))->make(true);
}

public function index(){
    return view('alumni.list');
}

这是数据表的刀片代码

$(document).ready( function () {
    $('#alumniTable').DataTable({
        "processing": true,
        "serverSide": true,
        "ajax": "{{ route('alumni-members') }}",
        columns: [
            { data: 'id' , name: 'id'},
            { data: 'name' , name: 'name'},
            { data: 'email' , name: 'email'},
            { data: 'student_id' , name: 'student_id'},
            { data: 'created_at' , name: 'created_at'},

        ]

    });
});

路线代码:

Route::get('/alumni-members', 'AlumniController@index');
Route::get('users','AlumniController@getUsers')->name('alumni-members');
4

2 回答 2

3

如果您需要添加路由链接列而不是在数据表中添加列

return Datatables::of(User::query()->with('profile'))
->addColumn('namelink', function ($user) {
    return '<a href="' . route('users.show', $user->id) .'">'.$user->name.'</a>'; 
})
->rawColumns(['namelink'])
->make(true);

并在列数组中添加列:

$(document).ready( function () {
$('#alumniTable').DataTable({
    "processing": true,
    "serverSide": true,
    "ajax": "{{ route('alumni-members') }}",
    columns: [
        { data: 'id' , name: 'id'},
        { data: 'name' , name: 'name'},
        { data: 'email' , name: 'email'},
        { data: 'student_id' , name: 'student_id'},
        { data: 'created_at' , name: 'created_at'},
        {data: 'namelink', name: 'namelink', orderable: false, searchable: 
        false},

    ]

   });
});
于 2019-01-30T09:56:58.357 回答
0

这有效,但略有变化。

return datatables()->of($d) ->addColumn('ab_id',function($d){ return "<a href='". url ('view-detail',$d-

ab_id)."'>".$d->ab_id."";
}) ->rawColumns(['ab_id']) ->make(true);

而不是路由,我调用了 URL 函数并且它起作用了

于 2020-08-08T05:01:42.523 回答