Вытягивание и отображение дополнительных данных в datatable - PullRequest
0 голосов
/ 23 сентября 2019

Я создаю веб-приложение, используя Laravel 5.8.Я начал погружаться в использование JQuery, и это удивительно.Однако я не смог найти ответ на свой вопрос.Надеюсь, что кто-то может помочь.

У меня есть представление под названием «роли», и оно отвечает за отображение списка ролей, основанных на безопасности, в системе.В этом представлении у меня есть таблица данных, отображающая этот список ролей, дату создания и так далее.В этой таблице данных есть столбец «Разрешения».Там, где ранее я бы поставил список разрешений, назначенных на эту роль.Если вы посмотрите на мой предыдущий код, я смог достичь этого.Я не смог понять это с помощью Jquery.

Код предыдущего вида:

@foreach ($roles as $role)
                    <tr>

                        <td>{{ $role->name }}</td>
                        <td>
                            @if($role->name === "superadmin")
                                <span class="badge badge-primary">All Permissions</span>
                            @else
                                @foreach($role->permissions()->pluck('permission_name') as $permission)
                                    <span class="badge badge-primary">{{ $permission }}</span>
                        @endforeach
                        @endif

                        <td nowrap>@if($role->name != "superadmin")<span class="dropdown">
                            <a href="#" class="btn btn-sm btn-clean btn-icon btn-icon-md" data-toggle="dropdown" aria-expanded="true">
                              <i class="la la-ellipsis-h"></i>
                            </a>

                            <div class="dropdown-menu dropdown-menu-right">
                                <a class="dropdown-item" href="{{ route('admin.security.roles.edit',$role->id) }}"><i class="la la-edit"></i> Edit Role</a>
                                <a class="dropdown-item" href="javascript:delete_role('{{ $role->id }}');"><i class="la la-remove"></i> Delete Role</a>
                            </div>
                        </span>
                        @endif
                    </tr>
                @endforeach

Код предыдущего контроллера:

    public function index()
    {
        $roles = Role::all();
        return view('backend.auth.roles.index')->with('roles', $roles);
    }

Текущий код php:

    public function index()
    {
        $permission = Permission::get();
        if(request()->ajax()) {
            return datatables()->of(Role::all())
                ->addColumn('actions', 'layouts._partials.backend._crud-default')
                ->rawColumns(['actions', 'permissions'])
                ->addIndexColumn()
                ->make(true);
        }
        return view('site.backend.auth.roles.index', compact('permission'));
    }

Текущий код представления:

<!--begin: Datatable -->
            <table class="table table-striped- table-bordered table-hover table-checkable" id="roles_table">
                <thead>
                <tr>
                    <th>Name</th>
                    <th>Permissions</th>
                    <th>Created</th>
                    <th>Updated</th>
                    <th>Actions</th>
                </tr>
                </thead>
            </table>
            <!--end: Datatable -->

Текущий код JavaScript:

        $(document).ready( function () {
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });

            $('#roles_table').DataTable({
                processing: true,
                serverSide: true,
                ajax: {
                    url: "{{ route('admin.security.roles.index') }}",
                    type: 'GET',
                },
                columns: [
                    {data: 'name'},
                    {data: 'permissions'},
                    {data: 'created_at'},
                    {data: 'updated_at'},
                    {data: 'actions', name: 'action', orderable: false},
                ],
                order: [[0, 'name']],
            });
});

Сообщение об ошибке показывает очевидное и что $ role andПеременные разрешения $ отсутствуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...