如何只检查laravel数据库中存储的复选框值?

时间:2019-11-14 06:27:29

标签: php laravel

我面临一个问题,即所有复选框均已选中。我只希望选中在数据库中具有值的复选框。

function disableAllButtons(){
    //var count= 0; // This needs to be defined out of function. Putting it here just for reference
    if (count >= 14) {
           button1ID.disabled = true;
           button2ID.disabled = true;
           button3ID.disabled = true;
           button4ID.disabled = true;
       });
    }
}

我的病情有问题吗? {{isset($ category)吗? 'checked':''}}

4 个答案:

答案 0 :(得分:1)

问题是您的$category将始终以这种方式设置,它将始终返回true。

您可能正在遍历所有类别,因此您需要将类别与产品或视图中的任何内容进行比较,并检查类别ID是否是为该产品选择的ID。 :

@foreach($categories as $category)
<div class="col-lg-3">
    <div class="form-group">
        <input type="checkbox" name="category[]"
           value="{{$category->id}}"
           @if($category->id === $model->category_id) 'checked' @endif>
           {{ $category->name }}<br>
    </div>
</div>
@endforeach

现在,仅当该代码附加到您要列出的模型时,此代码才会检查该类别。如果这对您来说还不够的话,也许可以从控制器显示更多代码,并从视图中获得更好的帮助。

-编辑

根据您的编辑,您正在那里使用多对多关系。.因此,它可以做到:

@if($place->categories->contains($category->id)) 'checked' @endif

答案 1 :(得分:0)

您可以使用empty()

{{ !empty($category) ? 'checked': '' }}

答案 2 :(得分:0)

尝试。 @if($category->id === $model->category_id) 'checked' @endif

@foreach($categories as $category)
    <div class="col-lg-3">
         <div class="form-group">
           <input type="checkbox" name="category[]" value="{{$category->id}}"  
           @if($category->id === $model->category_id) 'checked' @endif>{{ $category->name }}<br>
          </div>
     </div>
@endforeach

答案 3 :(得分:0)

您可以查看场所$place->categories所包含的类别集合是否包含正在迭代的当前类别。

@foreach($categories as $category)
    <div class="col-lg-3">
        <div class="form-group">
            <input type="checkbox"
                name="category[]" value="{{$category->id}}"

                {{ $place->categories->contains($category) ? 'checked' : '' }}

                >{{ $category->name }}<br>
        </div>
    </div>
@endforeach