Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.5,复选框列表(产品),如果用户有产品,则必须选中这些产品的复选框_Php_Laravel_Laravel 5.5 - Fatal编程技术网

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

Php Laravel 5.5,复选框列表(产品),如果用户有产品,则必须选中这些产品的复选框,php,laravel,laravel-5.5,Php,Laravel,Laravel 5.5,我有一个名为products的用户表,在添加用户时有一个复选框列表(产品),我可以在勾选复选框时添加产品 问题在于编辑用户,如果用户有产品(abc),则应在编辑用户屏幕中选中(勾选)abc复选框。我不能那样做。请帮忙。 提前谢谢。下面是代码 我就是这样用复选框来称呼产品的 @foreach($users as $user) {{ Form::open([ 'files' => true, 'method' => 'post', 'route' => 'users.edit',

我有一个名为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
@foreach($users作为$user)
{Form::open(['files'=>true,'method'=>'post','route'=>'users.edit','class'=>'Form'])}
创建用户

@if(会话(‘警报’) {{session('alert')} @恩迪夫 用户名 {{Form::text('username',$user->username,['class'=>'Form control'])} 新密码 {{Form::password('password',array('class'=>'Form control'))} 角色 @如果($user->role==“admin”) 管理 使用者 @恩迪夫 @如果($user->role==“user”) 使用者 管理 @恩迪夫 产品类型
(更改后请重新登录) @foreach($products as$product) {{$product->name2} @endforeach 活跃的 @如果($user->active==1) 对 不 @恩迪夫 @如果($user->active==0) 不 对 @恩迪夫
拯救

{{Form::close()}} @endforeach
您可以使用
Laravel Collective
选择
字段来实现这一点,请查看以下代码:

Form::select('select_list1', ['user' => 'User', 'admin' => 'Admin'], $user->role, ['placeholder' => 'Choose a role']);
第一个参数表示此字段的名称

第二个参数表示希望按顺序显示的数据数组
key=>value

第三个参数表示
默认值
如果没有默认值,可以使用
null


第四个参数(可选)表示要在表单元素上使用的属性数组(类、占位符、id等)

检查用户
是否存在
产品
匹配
产品列表中的产品
并使其
处于选中状态

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

@foreach($products as$product)
name2,$products_array))选中@endif>
{{$product->name2}
@endforeach

您只需检查您的产品是否与您的用户产品匹配 如果在用户表中保存
产品代码
,则代码应如下所示

<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>
<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>
关键是,您只需要在产品表和用户表项之间进行匹配。这类似于筛选具有相同值的所有项目。得到所有值后,检查它


希望这能对您有所帮助;)

如果您将产品存储在如下产品列中:“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>

@foreach($products as$product)
名称,$userProductArr)?选中:'}}>
{{$product->name2}

@endforeach

太好了!!,若用户有一个产品,那个么这是可行的。但是,如果用户有多个产品,当我使用内爆保存多个产品时(例如,扫描仪、墨水),您可以使用
if
块中的
strpos
检查该列中是否存在产品名称user@HashaamAhmed我已经编辑了我的答案,它将与您的scenarios@HashaamAhmed现在没事了,如果用户检查了多个产品,请使用更新的代码重试,然后如何存储?@DsRaj$products=introde(“,”,$request->get('products”)$user=user::create(['name'=>'example','username'=>$request->username,'password'=>bcrypt($request->password),'role'=>$request->select_list1,'products'=>$products,'active'=>$request->select_list2,]);return redirect()->back()->带有('alert','User Added');我的意思是如何将其存储在数据库中,比如说,将名称存储为字符串Hashaam,然后将单个产品名称存储为“abc”,但多个名称又如何呢?abc,abc(这就是我如何将其保存在db中的方式)谢谢您的解释:),但我尝试过,只有当用户只有一个产品时,它才起作用。对于多个产品,我在上面标记了一个ans,它工作得非常好:)