首页 > 解决方案 > 如何检查控制器中是否选中了复选框并将值添加到表中?

问题描述

我有一个调查表,我需要根据复选框值将值放在一列中。

我的复选框输入表单:

<input type="checkbox" name="chk" value="1" />
<label for="chk[]">Prijava</label>

控制器:

public function store(Request $request)
    {
        $validated=$request->validate([
            'title'=>'required',
            'description'=>'nullable'
        ]);
        if(Input::get('chk')==="1"){
            $validated['prijava']=1;
        }
        else{
            $validated['prijava']=0;
        }
        return Survey::create($validated);
    }

如果复选框被选中,我需要 'prijava' 列为 1,否则为 0。我总是得到 0,如果我将 else 中的代码更改为例如 2,它将在列中添加 2。我还将“prijava”列设置为布尔值。

标签: htmllaravel

解决方案


首先像这样删除 value 属性:

<input type="checkbox" name="chk" />

然后在您的 store 方法中将您的代码更新为:

public function store(Request $request)
    {
        $validated=$request->validate([
            'title'=>'required',
            'description'=>'nullable'
        ]);
        if($request->has('chk')){
            $validated['prijava']=1;
        }
        else{
            $validated['prijava']=0;
        }
        return Survey::create($validated);
    }

我认为这很好用


推荐阅读