根据Laravel中不同表的值动态创建标记/未标记的复选框

时间:2018-04-25 04:24:48

标签: php mysql laravel checkbox eloquent

我有一个表'角色'

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 :(得分:0)

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

答案 1 :(得分:0)

您可以传递第三个参数来标记它是否已选中。

{{Form ::复选框(&#39;同意&#39;,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

我希望这会有所帮助。

答案 2 :(得分:-1)

我认为您需要告诉创建html渲染的函数 20 import tensorflow as tf 21 from google.protobuf import text_format ---> 22 from object_detection.protos import string_int_label_map_pb2 23 24 ImportError: cannot import name 'string_int_label_map_pb2'

编辑:确定所以你有一个包含所有角色的主表和一个具有这个主表的外键的用户表,对吗?

如果是这样,你可以循环Form::checkbox()并为每个用户为每个$userRoles$roles创建一个嵌套循环(超过$role,这将是一个单独的主数组) 1}})检查它是否等于$roles$userRole),如果它们相同,则会检查该框,否则将取消选中。