仅当窗体在laravel中具有值时,才会插入数组窗体

时间:2017-07-13 09:29:47

标签: forms laravel insert is-empty

我在store controller

中有这个
public function store(Request $request)
{
        $medicalRecord = new medicalRecord();
            $medicalRecord->patient_id = $request->input("patient_id");
             $medicalRecord->keluhan = $request->input("keluhan");
            $medicalRecord->anamnesis = $request->input("anamnesa");
            $medicalRecord->diagnosis = $request->input("diagnosa");
         $medicalRecord->save();   


        // begin problem //
        $input = Input::all();

        foreach($input['obat'] as $key => $medicalRecord_id) {
            $insert[$key]['medicalRecord_id'] = $medicalRecord->id;
        }
        foreach($input['obat'] as $key => $obat) {
            $insert[$key]['terapi'] = $obat;
        }
        foreach($input['keterangan'] as $key => $keterangan) {
            $insert[$key]['keterangan'] = $keterangan;
        }

        treatment::insert($insert);
        //end problem//


        return redirect()->back();
}

在刀片中我有这样的形式:

<input type="text" name="obat[]"class="form-control" placeholder="Nama obat">
<input type="text" name="keterangan[]"class="form-control" placeholder="Keterangan">  

刀片中有10行。 problem block内的代码实际上有效。是什么让我堆叠所有表格都插入到数据库中,即使它们是空的。我尝试更改数据库表中字段的默认值,但如果某些表单为空,则返回错误。

如何过滤这些表单以仅处理带有值的表单?

1 个答案:

答案 0 :(得分:1)

创建一个FormRequest class,并对该路线进行验证。您可以使用requiredfilled验证规则来阻止空值。