【问题标题】:checkbox array recovering old values checked复选框数组恢复旧值已选中
【发布时间】:2020-10-06 15:08:42
【问题描述】:

我想在我的添加表单中检索旧值,同时恢复以前存储在数据库中的编辑页面中的数据。

这是我的代码:

<div class="row checkbox-offres">
      <legend class="fieldset-label">Skills&nbsp;:</legend>
      @foreach ($skills as $skill)
      <div class="form-group-lg col-lg-6">
        <label>
          <input class="form-check-input @error('skills') is-invalid @enderror" type="checkbox"
            name="skills[]" value='{{$skill->id}}' @foreach($demande->skills as $skill_chosen)
          {{ (is_array(old('skills')) && in_array($skill->id, old('skills'))) ? 'checked' : '' }}
          @endforeach
          > {{$skill->name}}</label>
      </div>
      @endforeach
      @error('skills')
      <div class="invalid-feedback d-block">
        {{$errors->first('skills')}}
      </div>
      @enderror
    </div>

此代码不会恢复添加表单中的旧值,也不会恢复存储在数据库中的数据。但是在edit id中恢复旧的有人误会了一个很奇怪的字段。

 {{ $skill_chosen->id == $skill->id ? 'checked' : '' }}

它正在从数据库中检索数据,但我不知道如何将其放入条件中。

顺便说一句:Demande 和 Student = 有很多 和技能=多对多。这 3 个表处于经典关系中

【问题讨论】:

    标签: arrays laravel checkbox laravel-blade


    【解决方案1】:

    你应该试试这个。

    {{ is_array(old('skills')) ? (in_array($skill-&gt;id, old('skills')) ? 'checked': '') : ($skill_chosen-&gt;id == $skill-&gt;id ? 'checked' : '') }}

    【讨论】:

    • 哇,谢谢,它工作了一半,我设法在表单编辑中检索旧数据和数据库,但是当有人在字段上弄错时,我无法在添加表单中获取旧数据。
    • 我认为 value='{{$skill->id}}' 还包括 old('skills) no ?
    • 您是否返回控制器中的值? return Redirect::back()->withInput($request->input());
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2013-02-10
    相关资源
    最近更新 更多