Я создаю веб-приложение, используя 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Переменные разрешения $ отсутствуют.