根据laravel中不同表的值动态创建复选框marked/unmarked

ugmeyewa  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(358)

我有一张“角色”表

和另一个表“role\u users”

我有一个动态生成的“角色”复选框,如下所示:

如何显示根据“role\u users”中相应“user\u id”的值标记/未标记的“roles”表中检索到的复选框?
在我看来:

{!! 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\u users”中相应“user\u id”的值标记/未标记的“roles”表中检索到的复选框?

7cwmlq89

7cwmlq891#

<?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>
z0qdvdin

z0qdvdin2#

我想你需要谈谈这个功能 Form::checkbox() 它正在创建html呈现。
编辑:好的,你有一个主表,它包含所有的角色,还有一个用户表,它有一个外键指向这个主表,对吗?
如果是这样的话,你可以循环一下 $userRoles 并为每个用户创建一个嵌套循环(结束 $roles ,这将是一个单独的主数组) $role (英寸 $roles )检查是否等于 $userRole (第页,共页) $userRoles ),如果它们相同,则选中该框,否则将取消选中。

2skhul33

2skhul333#

您可以传递第三个参数以将其标记为选中或未选中。
{{form::checkbox('agree',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

我希望这有帮助。

相关问题