Laravel / php - 从多个复选框创建一个布尔值数组

问题描述 投票:0回答:2

我试图从4个复选框创建一个用户选择的数组,其中值是布尔值(1或0)。这是我到目前为止的位置:

$selections = [
        'marketing' => $request->get('marketing'),
        'promotional' => $request->get('promotional'),
        'news' => $request->get('news'),
        'feedback' => $request->get('feedback')
    ];

    foreach ($selections as $selection) {
        if ($selection === null) {
            return $selection = 0);
        }
    }
    dd($selections);

尝试通过并检查是否取消选中该复选框(null)并将其设置为零。我不认为我可以在我的表单中执行此操作,但这里的代码也是以防万一:

<div class="form-group col-sm-12">
        <label>Uncheck the categories you would like to not receive emails from.</label>
        <div class="checkbox">
            <br/>
            <label>
            {{ Form::checkbox('marketing', '1', true) }}
            Marketing</label>
        </div>
        <div class="checkbox">
            <br/>
            <label>
            {{ Form::checkbox('promotional', '1', true) }}
            Promotional</label>
        </div>
        <div class="checkbox">
            <br/>
            <label>
            {{ Form::checkbox('news', '1', true) }}
            News</label>
        </div>
        <div class="checkbox">
            <br/>
            <label>
            {{ Form::checkbox('feedback', '1', true) }}
            Feedback</label>
        </div>
    </div>
php html forms laravel checkbox
2个回答
0
投票

从评论迁移回答

这里的问题是缺少默认值。 如果值不在请求中,那么$request->get()函数调用将返回null,这是未选中复选框的情况。 这个问题的一个解决方案是php中的??运算符。

$request->get('marketing') ?? 0

这基本上说“采取'营销'的价值,如果没有定义使用价值0”。


0
投票

这是更新和创建复选框和切换按钮的实用方法,可在我们的网站上完美运行

 <label>

    @if($model->exists)
        <!--on edit-->
        <input type="checkbox" name="active" {{$model->active ? 'checked value="1"' : 'value="0"'}}>
    @else
       <!--on create-->
       <input  type="checkbox" name="active" checked value="{{old('active', 1)}}">
    @endif

 </label>
© www.soinside.com 2019 - 2024. All rights reserved.