【问题标题】:Laravel set checkboxes checked based on database valueLaravel 根据数据库值设置复选框
【发布时间】:2017-08-22 15:33:38
【问题描述】:

我正在尝试设置基于数据库值检查的复选框。一个用户可以有多个复选框值。

复选框是从名为 child_age_groups 的数据库表中生成的:

   @foreach ($child_age_groups as $age)
      <div class="checkbox checkbox-info checkbox-inline">
         <input class="age_group_checkbox" type="checkbox" name="age_group[]" id="age_group{{$age->id}}" "/>
        <label for="age_group{{$age->id}}">{{$age->age_group}}</label>
     </div>
  @endforeach

所以在我的控制器中,我得到了用户拥有的所有选项

  $nanny_babysitting_ages      = Nanny_babysitting_ages::where('user_id', user()->id)->get();

我的 nanny_babysitting_ages 表是这样的

user_id | ages

我在其中填充复选框的 child_age_groups 表是这样的:

id | age_group

如何设置根据数据库中的值选择的复选框?

【问题讨论】:

  • 只需在输入中使用简单的内联if,如下所示:@if($age==$nanny_babysitting_ages-&gt;age ) CHECKED @endif
  • @Saman 属性 [ages] 在此集合实例上不存在。
  • 这是一项肮脏的工作,但如果没有从控制器传递$nanny_babysitting_ages,您可以通过以下方式获得$nanny_babysitting_ages/App/Nanny_babysitting_ages::where('user_id', user()-&gt;id)-&gt;get();
  • 我正在从控制器传递它,就像我在我的问题中写的那样
  • 那么为什么存在年龄属性呢??

标签: php laravel


【解决方案1】:

这就是我解决它的方法,我在输入中添加了 foreach 和 if 语句以检查它是否与数据库中的值相同:

             <div class="form-group" id="ageCheckboxes">
                @foreach ($child_age_groups as $age)
                <div class="checkbox checkbox-info checkbox-inline">
                   <input class="age_group_checkbox" type="checkbox" value="{{$age->id}}" name="age_group[]" id="age_group{{$age->id}}" @foreach ($nanny_babysitting_ages as $ages) @if($age->id == $ages->ages ) checked @endif @endforeach />
                   <label for="age_group{{$age->id}}">{{$age->age_group}}</label>
                </div>
                @endforeach
             </div>

【讨论】:

    猜你喜欢
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2013-12-16
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    相关资源
    最近更新 更多