Php 从数据库编辑页面复选框值
我有一张像下面这样的桌子Php 从数据库编辑页面复选框值,php,mysql,laravel,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
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也会在未选中值中再次显示,如下所示
因此,视图必须像ipsum(选中)和dolor(未选中)一样
这是刀片视图代码
@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
你知道丢失的东西在哪里吗?你可以试试这个:
在控制器中压缩$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
@foreach($spv形式的主管)
id,$list))?'选中“:”}>{{$spv->name}
@endforeach
我希望这会有帮助。在这里发布特定错误。。嗨@TharakaDilshan,我发布了一张错误图片。你的预期输出是什么?嗨@InzamamIdrees,我已经在screenshot@IkramShabri为什么要分解$query->team?在上表中,它只有一个类似integer的值。
@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