Laravel 5 - 多个复选框上的旧数据

时间:2016-02-08 17:13:26

标签: laravel laravel-5 laravel-5.1

我有很多复选框,在我的模板中采用以下形式

<div class="col-md-6 checkbox checkbox-danger">
    {!! Form::checkbox('testingOptions[]', 'Checkbox A', null, ['class' => 'styled', 'id' => 'checkbox1']) !!}
    <label for="checkbox1">
        Checkbox A
    </label>
</div>
<div class="col-md-6 checkbox checkbox-danger">
    {!! Form::checkbox('testingOptions[]', 'Checkbox B', null, ['class' => 'styled', 'id' => 'checkbox2']) !!}
    <label for="checkbox2">
        Checkbox B
    </label>
</div>

所以选择的选项会保存到testingOptions []。

在我的控制器中,我得到了输入,然后基本上将所有选项内爆成单个字符串

$testingOptions = Input::get('testingOptions');
$testingOptions = implode('&&&', $testingOptions);

在我的数据库中,我最终得到类似的东西

Checkbox A&&&Checkbox B

这一切都很好。对于我的编辑控制器,我正在执行以下操作

$selectedOptions = $project->something->testing;
if($selectedOptions != "") {
    $selectedOptions = explode('&&&', $selectedOptions);
    return View::make('something.edit', compact('project', 'selectedOptions'));
}

完成后,在我的编辑模板中,如果我输出selectedOptions,我有类似的东西

array:2 [▼
  0 => "Checkbox A"
  1 => "Checkbox B"
]

因此我知道在我的编辑页面上有

<div class="col-md-6 checkbox checkbox-danger">
    {!! Form::checkbox('testingOptions[]', 'Checkbox A', null, ['class' => 'styled', 'id' => 'checkbox1']) !!}
    <label for="checkbox1">
        Checkbox A
    </label>
</div>
<div class="col-md-6 checkbox checkbox-danger">
    {!! Form::checkbox('testingOptions[]', 'Checkbox B', null, ['class' => 'styled', 'id' => 'checkbox2']) !!}
    <label for="checkbox2">
        Checkbox B
    </label>
</div>

有没有办法使用以前选择的选项的变量数组在我的表单中预先选择匹配?

由于

2 个答案:

答案 0 :(得分:2)

我设法通过

来解决这个问题
{!! Form::checkbox('testingOptions[]', 'Checkbox A', in_array('Checkbox A', $testingOptions), ['class' => 'styled', 'id' => 'checkbox1']) !!}
{!! Form::checkbox('testingOptions[]', 'Checkbox B', in_array('Checkbox B', $testingOptions), ['class' => 'styled', 'id' => 'checkbox1']) !!}

答案 1 :(得分:1)

为实现这一目标,我使用内置old()功能的laravel:

{{ old('username') }}