gwa*_*apo 1 php laravel laravel-5 laravel-5.5
这是我的代码.如果值为true,我想显示我的复选框应该检查.但相反,我得到一个错误说:
此集合实例上不存在Property [id]
@foreach($benefits as $benefit)
<div class="form-check">
<label class="form-check-label" for="benefit[]">
<input class="form-check-input" type="checkbox" value="{{$benefit->id}}" id="benefit_id" name="benefit_id[]" @if($benefit->id == $user->benefits->id) checked @endif>{{$benefit->name}}
</label>
</div>
@endforeach
Run Code Online (Sandbox Code Playgroud)
我想$user->benefits是一个包含多个Benefit对象的集合.您不能只获取集合的属性,您需要检查该集合中的任何对象是否具有id等于当前的属性id.
可能的解决方案是使用containsLaravel集合上的函数.此函数将检查对象是否存在具有特定键的给定值.
@if($user->benefits->contains('id', $benefit->id)) checked @endif
Run Code Online (Sandbox Code Playgroud)
刀片中更好的解决方案是
{{ $user->benefits->contains('id', $benefit->id) ? 'checked' : '' }}
Run Code Online (Sandbox Code Playgroud)