具有旧输入和默认值的 Laravel 复选框无法正常工作

标签 laravel

我正在制作一个带有复选框的编辑页面,我希望 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

Controller

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,则表单可以正常工作

最佳答案

我这样做的方法是从数据库中提取选定的选项并将它们变成一个数组,示例如下:

Controller (编辑方法):

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

希望对您有所帮助,请告诉我。这是基于您提供的有限代码,纯粹是帮助您入门的示例 - 如果您提供更多代码,我很乐意帮助您彻底解决问题

关于具有旧输入和默认值的 Laravel 复选框无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55628501/

相关文章:

php - Laravel - 使用 bundle 从数据库中检索数据

mysql - SQLSTATE[23000] : Integrity constraint violation: 1048 Column 'lat' cannot be nul

cordova - 在 API 端使用 Ionic 和 laravel 进行实时聊天

php - 在测试我的算法的所有可能性时减少测试时间的策略

php - 在 AWS 上找不到 Laravel 5 类 'Collective\Html\HtmlServiceProvider'

php - Laravel 5 错误报告抑制

laravel - 使用Laradock运行Elastic Search

php - 将变量发送到另一个应用程序并从中获取响应?

php - SQLSTATE[HY000] [1045] 用户 'root' @'114.xxx.xxx.xxx' 的访问被拒绝(使用密码 : YES)

javascript - 如何在聊天中为用户定义颜色