我正在制作一个包含复选框的编辑页面,我希望laravel能记住旧输入。我在特定选项的数据库1或0值中存储。
@foreach( $options['tuning'] as $key => $option)
<div class="col-3 rent-car-security">
<input type="checkbox" name="{{ $option }}" id="{{ $option }}"
value="1" {{ old($option, $car->tuning_options->{ $option }) ? 'checked' : '' }}>
<label for="{{ $option }}">{{ $key }}</label>
</div>
@endforeach
调节器
private $tuning_options = [
'Made for racing' => 'made_for_racing',
'Increased engine power' => 'increased_engine_power'
];
------------
$options = [
'tuning' => $this->tuning_options
];
return view('cars.edit', compact(['car', 'options']));
如果选项在开头为0,则表单可正常工作
我这样做的方法是从数据库中选择所选的选项并将它们转换为数组,例如:
控制器(编辑方法):
public function edit($id) {
$options = Options::all();
$selected_options = $options->pluck('id')->toArray()
return view('example.view', compact('selected_options'));
}
然后在我看来我会做以下逻辑:
@foreach( $options['tuning'] as $key => $option)
<div class="col-3 rent-car-security">
<input type="checkbox" name="{{ $option }}" id="{{ $option }}" value="1" {{ in_array($option, $selected_options) ? 'selected' : '' }}>
<label for="{{ $option }}">{{ $key }}</label>
</div>
@endforeach
我希望有帮助,请告诉我。这是基于您提供的有限代码,纯粹是一个让您入门的示例 - 如果您提供更多,我很乐意帮助您完全解决问题
我添加了隐藏的输入,现在它完美无缺
<input type="hidden" name="{{ $option }}" value="0">