Laravel 5.5,复选框(产品)列表,如果用户有产品,则必须检查这些产品的复选框

时间:2018-02-26 09:00:08

标签: php laravel laravel-5.5

我有一个名为products的列的用户表,同时为用户添加了一个复选框(产品)列表,我可以在勾选复选框的同时添加产品。

问题在于编辑用户,如果用户有产品(abc),则应在编辑用户界面中选中(勾选)abc复选框。我无法做到这一点。请帮忙。 提前致谢。以下是代码

多数民众赞成我如何使用复选框调用产品

@foreach($users as $user)
{{ Form::open([ 'files' => true, 'method' => 'post', 'route' => 'users.edit', 'class' => 'form']) }}
<div class="container" style="margin-top: 0; line-height: 50px; height: 50px;">
   <h4 class="module-title">Create User</h4>
</div>
<br clear="both"/>
@if (session('alert'))
<div class="alert alert-success">
   {{ session('alert') }}
</div>
@endif
<div class="container">
   <table class="table table-striped">
      <tr>
         <th>
            Username
         </th>
         <td>
            {{ Form::text('username',$user->username, ['class' => 'form-control']) }}
         </td>
      </tr>
      <tr>
         <th>
            New Password
         </th>
         <td>
            {{ Form::password('password', array('class' => 'form-control')) }}
         </td>
      </tr>
      <tr>
         <th>
            Role
         </th>
         <td>
            <div class="form-group">
               <select name="select_list1" class="form-control">
                  @if ($user->role == "admin")
                  <option value="admin" selected="selected">Admin</option>
                  <option value="user">User</option>
                  @endif
                  @if ($user->role == "user")
                  <option value="user" selected="selected">User</option>
                  <option value="user">Admin</option>
                  @endif
               </select>
            </div>
         </td>
      </tr>
      <tr class="products">
         <th>
            Product Type<br/>(After Changes please re-login)
         </th>
         <td>
            <table>
               @foreach($products as $product)
               <tr>
                  <td style="width: 32%;  padding-bottom: 5px;"><input type="checkbox" name="products[]" value="{{$product->name}}">
                     {{$product->name2}}
                  </td>
               </tr>
               @endforeach
            </table>
         </td>
      </tr>
      <tr>
         <th>
            Active
         </th>
         <td>
            <div class="form-group">
               <select name="select_list2" class="form-control">
                  @if ($user->active == 1)
                  <option value="1" selected="selected">Yes</option>
                  <option value="0">No</option>
                  @endif
                  @if ($user->active == 0)
                  <option value="0" selected="selected">No</option>
                  <option value="1">Yes</option>
                  @endif
               </select>
            </div>
         </td>
      </tr>
   </table>
   <hr/>
   <button type="Submit" name="save" class="btn btn-primary">
   Save
   </button>
   <br clear="both"/>
   <br/>
</div>
{{ Form::close() }}
@endforeach

2 个答案:

答案 0 :(得分:0)

您只需要检查您的产品是否与您的用户产品匹配 如果您将product code保存在用户的表格中,那么您的代码应该是这样的

<table>
    @foreach($products as $product)
        <tr>
           <td style="width: 32%;  padding-bottom: 5px;"><input type="checkbox" name="products[]" value="{{$product->name}}" {{$user->productCode == $product->code ? 'checked' : ''}}>
                 {{$product->name2}}
           </td>
        </tr>
    @endforeach
</table>

但如果您将product name保存在用户的表格中,那么您的代码应该是这样的

<table>
    @foreach($products as $product)
        <tr>
           <td style="width: 32%;  padding-bottom: 5px;"><input type="checkbox" name="products[]" value="{{$product->name}}" {{$user->productName == $product->name ? 'checked' : ''}}>
                 {{$product->name2}}
           </td>
        </tr>
    @endforeach
</table>

关键是,您只需要在产品表和用户表项之间进行匹配。这就像过滤具有相同值的所有项目。获得所有值后,请检查它。

希望这可以帮到你;)

答案 1 :(得分:0)

如果您将产品存储在产品列中,请执行以下操作:'abc','abc1','abc2'

<?php $userProductArr = explode(',',$user->products); ?>
@foreach($products as $product)
   <tr>
      <td style="width: 32%;  padding-bottom: 5px;">
         <input type="checkbox" name="products[]" value="{{$product->name}}" {{(in_array($product->name,$userProductArr) ?  checked : '' }}>
         {{$product->name2}}
      </td>
   </tr>

@endforeach