从数据库编辑页面复选框的值

时间:2019-04-20 06:33:44

标签: php mysql laravel

我有一个如下表

id |    name    |   pic   |     level     |  team
1     John          3           user           
2     Ipsum         4           user           
3     Lorem         5          supervisor     
4     Dolor Amet    5           admin         
5     Amet                     manager        3,4
6     Diego         7           user          
7     Michael       5           supervisor    

我想作为用户ID 5,显示我可以在复选框值中看到的团队,并在复选框中进行编辑或更改。我已经尝试过,但这是错误的。已被检查的用户ID 3也再次显示为未经检查的值,例如screenshot

因此视图必须像ipsum(选中)和dolor(未选中)一样,this picture

这是刀片视图代码

 @foreach($supervisor as $spv)          
    <div class="checkbox">
    @foreach($result as $res)
       @if($spv->id == $res->id)
         <label>
         <input type="checkbox" name="spv[]" value="{{ $spv->id }}" checked>{{ $spv->name }}
         </label>
       @else 
         <label>
         <input type="checkbox" name="spv[]" value="{{ $spv->id }}">{{ $spv->name }}

         </label>
      @endif
     @endforeach
   </div>
   @endforeach

这是控制器代码

$query = DB::table('users')->where('id',$id)->first();

$list=explode(',', $query->team);
$result = DB::table('users')->whereIn('id',$list)->get();

$supervisor = Users::where('level','supervisor')->orWhere('level','admin')->get();

您知道失踪者在哪里吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

在您的控制器中,压缩$list变量,因为它是团队ID的数组:

$query = DB::table('users')->where('id',$id)->first();

$list=explode(',', $query->team);
$result = DB::table('users')->whereIn('id',$list)->get();

$supervisor = Users::where('level','supervisor')->orWhere('level','admin')->get();

return view('your-blade-view', compact('result', 'supervisor', 'list'));

然后在您的刀片式服务器中:

 @foreach($supervisor as $spv)          
     <div class="checkbox">
         <label>
             <input type="checkbox" name="spv[]" value="{{ $spv->id }}" {{ ( in_array($spv->id, $list) ) ? 'checked' : '' }}>{{ $spv->name }}
         </label>
     </div>
 @endforeach

我希望这会有所帮助。