Отображение данных Datatables из другой таблицы - PullRequest
0 голосов
/ 02 февраля 2020

Я хочу отобразить данные из другой таблицы внутри моей мастер-формы.

  1. Главный файл компании имеет вкладку «Сотрудники», которая отображается с помощью таблиц данных.
  2. Таблица сотрудников, связанная с компанией через company_id

Связь уже определена во всех релевантных моделях. Я хочу использовать Datatables для отображения сотрудников во вкладке [ Company Employees ] внутри [ Company Мастер ]

Я хочу фильтровать / отображать только данные только открытой компании

== Это CompanyManagementController == [Сотрудники]

public function getManagement()
    {

        return DataTables::of(CompanyManagement::query())

            ->editColumn('name', function (CompanyManagement $management) {
                return $management->name;
            })
            ->editColumn('party_id', function (CompanyManagement $management) {
                return $management->party->name;
            })
            ->editColumn('phone', function (CompanyManagement $management) {
                return $management->phone;
            })

            ->editColumn('email', function (CompanyManagement $management) {
                return $management->email;
            })

            ->editColumn('management_role_id', function (CompanyManagement $management) {
                return $management->managementRole->name;
            })

            ->editColumn('additional_info', function (CompanyManagement $management) {
                return $management->additional_info;
            })

            ->rawColumns(['action'])

            ->addColumn('action', function ($id) {
                return '<a href="management/' . $id->id . '" class="btn btn-xs btn-primary ">Edit</a>';
            })


            ->make(true);
    }

** Маршрут таблиц данных для сценария **

Route::get('getmanagement', 'CommpanyManagementController@getManagement')->name('get.management');

** Сценарий Blade **

        $(function() {
            $('#management').DataTable({
                processing: true,
                serverSide: true,

                ajax: '{!! route('get.management') !!}',
                columns: [
                    { data: 'name', name: 'name' },
                    { data: 'management_role_id', name: 'management_role_id' },
                    { data: 'additional_info', name: 'additional_info' },
                    { data: 'party_id', name: 'party_id' },
                    { data: 'phone', name: 'phone' },
                    { data: 'email', name: 'email' },
                    { data: 'action', name: 'action' }
                ],
            });
        });

...