Как заполнить флажки данными из базы данных? - PullRequest
0 голосов
/ 14 ноября 2018

Я не могу найти способ заполнить флажки данными из базы данных.У меня есть таблица ролей (идентификатор и имя роли), таблица пользователей (идентификатор, имя, фамилия и т. Д.) И сводная таблица (user_id, role_id).Как мне заполнить их, чтобы отображалось, если пользователь является администратором / пользователем или обоими?

Спасибо.

controller

{
        $total_row = $data->count();
        $output = "";
        if ($total_row > 0) {
            foreach ($data as $row) {
                $roleNames = '';
                foreach (Role::all() as $roles1) {
                    $roleNames .= $roles1->role != null ? $roles1->role.' '.'<input type="checkbox" class="checkbox" id="checkboxId">'.' ' : '';
                    // if ($roles1 = id(1)) {
                    //     return '<input type="checkbox" class="checkbox" id="checkboxId" checked>';
                    // }
                }

            $output .= '
                <tr>
                    <td>'.$row->surname.'</td>
                    <td>'.$row->name.'</td>
                    <td>'.$row->phone.'</td>
                    <td>'.$roleNames.'</td>
                    <td><button type="button" id="rowId" class="remove-button btn btn-danger" data-id="'.$row->id.'">
                    <div class="close">&#120;</div>
                    </button></td>
                </tr>
            ';
        }
    } else {
        $output = '
            <tr>
                <td align="center" colspan="5">Nema podataka</td>
            </tr>
        ';
    }
    return array(
        'table_data'  => $output,
        'total_data'  => $total_row,
    );
}

1 Ответ

0 голосов
/ 14 ноября 2018

Лучше использовать вид.

В вашем случае вы можете попробовать что-то вроде этого:

$roles = Role::all();

foreach ($data as $row) {
    $roleNames = '';

    $rowRoles = $row->roles->pluck('id');

    foreach($roles as $role){
      $roleNames .= '<input type="checkbox" name="roles[]" value="' . $role->id . '" ' . (in_array($role->id, $rowRoles) ? 'checked' : '') . '/> ' . $role->name;
    }
}

Вам необходимо иметь отношение "roleMany" в вашей пользовательской модели.

public function roles()
{
   return $this->belongsToMany('\App\Role', 'pivot_table_name');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...