Я планирую реализовать разрешения дозорного в Laravel 5.3. Я создал permissions.php
внутри папки конфигурации.
файл config / permissions.php
<?php
return array(
'User Management -> Role Management' => array(
array(
'permission' => 'role-management.view',
'label' => 'View',
),
array(
'permission' => 'role-management.create',
'label' => 'Create',
),
array(
'permission' => 'role-management.edit',
'label' => 'Edit',
),
array(
'permission' => 'role-management.delete',
'label' => 'Delete',
),
),
'User Management -> User Management' => array(
array(
'permission' => 'user-management.view',
'label' => 'View',
),
array(
'permission' => 'user-management.create',
'label' => 'Create',
),
array(
'permission' => 'user-management.edit',
'label' => 'Edit',
),
array(
'permission' => 'user-management.delete',
'label' => 'Delete',
),
),
);
Затем в моем контроллере я создал маршрут get для просмотра.
маршрут
Route::get('/manage-role/edit/{slug}', ['as' => 'edit', 'uses' => 'RoleController@edit']);
Мой метод контроллера выглядит следующим образом
public function edit($slug)
{
//get selected role ex: admin, manager or user
$role = Sentinel::findRoleBySlug($slug);
$permissions = Config::get('permissions');
foreach ($permissions as $permission) {
foreach ($permission as $eachPermission) {
$encodedPermission = base64_encode($eachPermission['permission']);
$eachPermission['encodedPermission'] = $encodedPermission;
}
}
//return view
return view('backend.admin.user-management.edit-role', [
'role' => $role,
'permissions' => $permissions
]);
}
И мой взгляд выглядит следующим образом, я удалил бутстрап и прочее, просто чтобы сосредоточиться на логике.
редактировать-role.blade.php
<form action="" method="post">
@foreach ($permissions as $permissionHeader => $permissions)
<h3 class="box-title">{{ $permissionHeader }}</h3>@foreach ($permissions as $key => $permission)
<label class="control-group">{{{ $permission['label'] }}}</label>
<input type="radio" name="{{ $permission['label'] }}" class="flat-red" checked> Enable
<input type="radio" name="{{ $permission['label'] }}" class="flat-red"> Disable
</label>
@endforeach
@endforeach
<button type="submit" class="btnRoleForm btn btn-success">Save Roles</button>
</div>
</form>
Это изображение для установки разрешения для менеджера из панели администратора
Я хочу установить переключатель для каждого разрешения создания, просмотра, обновления, удаления для каждого типа (управление пользователями, управление ролями и т. Д.). Я в настоящее время застрял.
когда я использую name="{{ $permission['encodedPermission'] }}"
в клинке я получаю ошибку. Этот ключ не установлен в массиве.
Я хочу установить все разрешения на кнопку сохранения. Я делаю правильно или есть другой эффективный способ сделать это. Требуется помощь.
Задача ещё не решена.
Других решений пока нет …