Как добавить ссылку на маршрут к столбцу таблицы данных в laravel? - PullRequest
0 голосов
/ 30 января 2019

У меня есть система, которая показывает данные всех доступных пользователей системы с функцией поиска.Я сделал это с помощью пакета данных таблицы 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');

1 Ответ

0 голосов
/ 30 января 2019

если вам нужно добавить столбец ссылки на маршрут, чем добавить столбец в таблицу данных

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

    ]

   });
});
...