如果值为真,则应选中复选框

Checkbox should be checked if the value is true

这是我的代码。如果值为真,我想显示我的复选框,应该进行检查。但是我收到一条错误消息:

Property [id] does not exist on this collection instance

@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

我想 $user->benefits 是一个包含多个 Benefit 对象的集合。您不能只获取集合的 属性,您需要检查该集合中的任何对象是否具有等于当前 id.[=18= 的 id 属性 ]

一个可能的解决方案是在 Laravel 集合上使用 contains 函数。此函数将检查是否存在具有特定键的给定值的对象。

@if($user->benefits->contains('id', $benefit->id)) checked @endif

Blade 中更好的解决方案是

{{ $user->benefits->contains('id', $benefit->id) ? 'checked' : '' }}