在Laravel 4.2中检查复选框

时间:2015-10-01 12:03:27

标签: checkbox laravel-4

我的一些复选框有问题。他们总是被检查,除非我把"假"在所有这些中。 如果" id"我有一个函数returnig。在数组中,它工作正常。但要么它返回true或false复选框仍然检查。 这是我的功能:

public  function hasTipologia($id){
    $array = $this->tipologias->lists('id');
    MyHelpers::debugArray([$array,$id,in_array($id,$array)],false);
    return in_array($id,$array);
}

MyHelpers向我展示了对ids的数量进行调整,当前ID为" Tipologia"如果它在阵列中或不在。

在这里你可以看到它有效 Here you can see that it works

我视图中的代码是:

@if(count($tipologias))
    <h4>Tipologías estratégicas</h4>
    <div class="col-md-12">
        @foreach($tipologias as $tipologia)
            <div class="col-md-3">
                {{ Form::checkbox('tipologias[]',$tipologia->id,$formacion->hasTipologia($tipologia->id)===true ?true:false , ['class' => 'form-control']) }}
                {{$tipologia->nombre}}
            </div>
        @endforeach
    </div>
@endif

我尝试使用不同的代码,如果我放了这个代码:

 $formacion->hasTipologia($tipologia->id)===true ?false:false

仍然检查,并与此相同:

 $formacion->hasTipologia($tipologia->id)===false ?true:false

我有make和@if然后插入两个表单,一个用true,一个用false,仍然检查。

有什么想法吗? 谢谢;)

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,最后通过以下方式解决了问题。

 @if(count($tipologias))
  <h4>Tipologías estratégicas</h4>
<div class="col-md-12">
    @foreach($tipologias as $tipologia)
        <div class="col-md-3">
            {{ Form::checkbox('tipologias[]',$tipologia->id,(in_array($tipologia->id ,$formacion->tipologias()->select('tipologias.id')->lists('id')->ToArray()) ? true : false) , ['class' => 'form-control']) }}
 {{$tipologia->nombre}}
        </div>
    @endforeach
</div>
@endif

这样你就可以根据$ formacion-&gt; tipologias()关系构建复选框并选择它们。注意select语句select(&#39; tipologias.id&#39;)其中tipologias应该是你的表名。我尝试过最简单的方法

{{ Form::checkbox('tipologias[]',$tipologia->id,(in_array($tipologia->id ,$formacion->tipologias()->lists('id')->ToArray()) ? true : false) , ['class' => 'form-control']) }}

我得到了&#34;模糊的列ID&#34; error.So无法省略select方法。