【问题标题】:How can i add a route link to data table column in laravel?如何在 laravel 中向数据表列添加路由链接?
【发布时间】:2019-06-23 12:31:38
【问题描述】:

我有一个系统,它显示系统所有可用用户的数据,并具有搜索功能。我已经通过使用 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');

【问题讨论】:

  • 你有什么错误吗?
  • 不,没有错误,我无法将用户 ID 路由到控制器视图方法
  • 你没有将 id 传递给路由,你需要像这样在路由中添加 id :route('alumni-members', ['id' => $id]

标签: laravel datatable laravel-blade yajra-datatable


【解决方案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},

    ]

   });
});

【讨论】:

    【解决方案2】:

    这行得通,但略有变化。

    return datatables()->of($d) ->addColumn('ab_id',function($d){ return "

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

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

    【讨论】:

      猜你喜欢
      • 2018-04-08
      • 2017-05-08
      • 2018-05-29
      • 2016-03-30
      • 2018-02-08
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 2020-11-08
      相关资源
      最近更新 更多