如何在Laravel中向数据表列添加路由链接?

时间:2019-01-30 09:14:30

标签: laravel datatable laravel-blade yajra-datatable

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

static final int[] POWERS_OF_10 = { 1000000000, 100000000, 10000000,
        1000000, 100000, 10000, 1000, 100, 10 };

static int trailingZeros(int number) {
    return Arrays.stream(POWERS_OF_10)      // reversed stream of of 10^n
                 .map(pow -> number % pow)  // stream of rests
                 .reduce(0, (count, rest) -> (rest == 0) ? count + 1 : 0);
}

这是数据表的刀片代码

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'},

        ]

    });
});

2 个答案:

答案 0 :(得分:1)

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

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},

    ]

   });
});

答案 1 :(得分:0)

这有效,但是稍有改变。

返回datatables()-> of($ d) -> addColumn('ab_id',function($ d){返回“URL ('view-detail',$ d-

ab_id)。“'>”。$ d-> ab_id。“”;
})-> rawColumns(['ab_id'])-> make(true);

我调用了URL函数,而不是路由