如何检查控制器中的复选框是否已选中并将值添加到表中?

时间:2019-09-11 12:18:01

标签: html laravel

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

我的复选框输入表单:

<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);
    }

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

3 个答案:

答案 0 :(得分:0)

您不需要使用Input类来检查是否已选中复选框。由于您已经有Request个实例,因此请检查它:

if($request->chk === "1"){
     $validated['prijava']=1;
}
 else{
     $validated['prijava']=0;
 }

没有对此进行测试,但是应该可以得到所需的输出。让我知道您是否遇到任何错误。

答案 1 :(得分:0)

$config = array(
            'format' => 'A4',
            'mode' => 'utf-8',
            'margin_header' => 20,
            'margin_footer' => 10,
            'orientation' => 'P'
        );
$mpdf = new Mpdf($config);

如果选中此复选框,则返回true;否则,则返回false。

答案 2 :(得分:0)

首先删除值属性,如下所示:

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

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

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);
    }

我认为这很好用