динамически создаваемый флажок помечен / не помечен на основе значений из другой таблицы в Laravel - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть таблица «Роли»

enter image description here

И еще одна таблица 'role_users'

enter image description here

У меня есть динамически сгенерированные флажки из «ролей», подобные этим: enter image description here

Как я могу показать флажки, которые получены из таблицы «ролей»помечен / не помечен на основе значений из 'role_users' для соответствующего 'user_id'?

У меня есть это на мой взгляд:

{!! Form::open(['url' =>URL::to('admin/user/'.$profileUser->id) , 'method'=>'PUT', 'enctype'=>'multipart/form-data' ]) !!}
                    @foreach ($userRoles as $key => $userRole)
                    <tr>
                        <td width="10%">{{ Form::label($userRole->name) }}</td>
                        <td>{{ Form::checkbox( 'rolename[]', $userRole->id) }}</td>
                    </tr>
                    @endforeach
                    <tr>{{ Form::submit('Save', array('class' => 'btn', 'name' => 'roleSubmit')) }}</tr>
            </tbody>
            {{ Form::close() }}

где:

$userRoles = DB::table('roles')->get();

Какя могу показать флажки, которые извлекаются из таблицы «ролей», помеченные / не отмеченные на основе значений из «role_users» для соответствующего «user_id»?

Ответы [ 3 ]

0 голосов
/ 25 апреля 2018
<?php
   $role_id = 1;
?>

<table>
<tr>
<td> 
    <input type='checkbox' <?php if($role_id == 0) {echo 'checked' ;} ?> >Admin<br/>
    <input type='checkbox' <?php if($role_id == 1) {echo 'checked' ;} ?> >CIO<br/>
    <input type='checkbox' <?php if($role_id == 2) {echo 'checked' ;} ?> >IO<br/>
</td>
</tr>
</table>
0 голосов
/ 25 апреля 2018

Вы можете передать третий параметр, чтобы отметить его как проверенный или нет.

{{Form :: checkbox ('accept', 1, true)}}}

, так что я думаю, что вам нужносоздать условие для третьего параметра.


 @foreach ($userRoles as $key => $userRole)
                <tr>
                    <td width="10%">{{ Form::label($userRole->name) }}</td>
                    <td>{{ Form::checkbox( 'rolename[]', $userRole->id, (bool) $userRole->id == $profileUser->role_id }}</td>
                </tr>
                @endforeach

Надеюсь, это поможет.

0 голосов
/ 25 апреля 2018

Я думаю, вам нужно рассказать о функции Form::checkbox(), которая создает ваш HTML рендер.

Редактировать: ОК, значит, у вас есть основная таблица со всеми ролями и пользовательская таблица с внешним ключом этой основной таблицы, верно?

если это так, вы можете выполнить цикл по $userRoles и для каждого пользователя создать вложенный цикл (более $roles, который будет отдельным главным массивом), для каждой $role$roles) проверки, если это равно $userRole (из $userRoles), если они одинаковы, флажок будет установлен, если нет, то он не будет снят.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...