我尝试从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>
答案 0 :(得分:0)
从评论中迁移回答
这里的问题是缺少默认值
如果值不在请求中,$request->get()
函数调用将返回null
,这是未选中复选框的情况。
这个问题的一个解决方案是php中的??
运算符。
$request->get('marketing') ?? 0
这基本上是说“采取'营销'的价值,如果未定义则使用价值0
”。
答案 1 :(得分: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>