Как сгруппировать checkbox по их сущностям?

Здравствуйте.
Есть таблица с пермиссиями
Schema::create('permissions', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('entity');
});

Их я вывожу для каждой роли таким образом
<div class="form-group">
                        <div class="col-lg-10">
                          @foreach($permissions as $permission)
                            <input {{ in_array($permission->id, $rolePermissions) ? "checked" : null }} name="permissions[]" value="{{ $permission->id}}"  type="checkbox" />{{ $permission->name}}</label>
                          @endforeach
                        </div>
                     </div>

По 4 пермиссии пренадлежат одной сущности. И я хочу отобразить их в виде (Сущность -> 4 сheckbox)
Вот как выглядит все сейчас:
5e2a1a66e185b925976910.png
Вроде и простая задача, но в голову не приходит как это сделать
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
Alex_Wells
@Alex_Wells
PHP/TS/Kotlin developer
->groupBy('entity')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
iit
@iit
TeamLead + php/js разработчик
Самый простой вариант - пройтись по ним циклом

$permissions =  Permission::all();

$permissionEntity = [];
foreach($permissions as $permission){
    if(!isset($permissionEntity[$permission->entity]){ 
            $permissionEntity[$permission->entity] = [];
    }
    $permissionEntity[$permission->entity][] = $permission;
}


@foreach($permissionEntity as $entity => $permission)
    <h4>{{ $entity }}</h4>
    <div class="form-group">
        <div class="col-lg-10">
            <input {{ in_array($permission->id, $rolePermissions) ? "checked" : null }} name="permissions[]" value="{{   $permission->id}}"  type="checkbox" />{{ $permission->name}}
         </div>
    </div>
@endforeach
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы