2015-09-07 2 views
0

Я создаю приложение, в котором есть пользователи и роли. Я хочу, чтобы пользователи с ролью администратора могли изменять другие роли пользователя. Например, добавьте/удалите их из других ролей.Laravel лучший способ предварительно установить поля флажка из базы данных

Чтобы сделать это, я настроить форму с флажками, в котором перечислены из всех ролей пользователей, доступных:

Просмотр

<fieldset> 
    <legend>Groups</legend> 
    @foreach($roles as $role) 
     {!! Form::checkbox($role->field) !!} <span>{{ $role->name }}</span><br> 
    @endforeach 
</fieldset> 

Это приводит к следующим производится:

[] Administrator 
[] Supervisor 
[] Employer 
[] Contractor 

У меня есть метод, который я использую для загрузки ролей, принадлежащих пользователю:

/** 
* Get all user roles. 
* 
* @param $id 
* @return Collection 
*/ 
public function getUsersRoles($id) 
{ 
    return $this->roleUser->where('user_id', $id)->get(); 
} 

Вышеуказанный метод возвращает объект, содержащий каждую роль.

Как использовать этот метод для предварительного выбора ролей, к которым принадлежит пользователь в моем представлении?

ответ

1
{!! Form::checkbox($role->field->name, $role->field->id, in_array($role->id, Auth::user()->getUsersRoles()->lists('id'))) !!} 

Вы проверяете, если текущая роль идентификатор в ваших доступных ролей пользователей. Если true, будет выбран флажок.

+0

Спасибо, это очень помогло. Мне просто нужно было добавить '-> toArray()' для преобразования 'lists()' в массив. – V4n1ll4

+0

Забыл эту маленькую часть, извините :) – mimo

Смежные вопросы