Laravel 5.1收音机按钮和复选框

时间:2016-03-30 15:04:20

标签: php html forms laravel laravel-blade

在Laravel刀片模板中,我们有一个带有一些可选单选按钮和复选框的表单,如

 <input type="checkbox" id="A" name="A">A <br />
 <input type="checkbox" id="B" name="B">B <br />

和单选按钮

 <input type="radio" id="R1" name="AINE" value="1"> Yes
 <input type="radio" id="R2" name="AINE" value="0"> No

在控制器中,在post方法中,我们有

$input = Input::all();
DB::connection('datab1')->table('tab1')->insert(array(    
'A' => array_key_exists('A', $input) ? $input['A'] : null,
'B' => array_key_exists('B', $input) ? $input['B'] : null,
'AINE' => array_key_exists('AINE', $input) ? $input['AINE'] : null,
 ));

但是在提交表单时,它总是在数据库的所有三列中插入1,即使选中了单选按钮,也没有选中复选框。有人可以解释一下吗?

2 个答案:

答案 0 :(得分:1)

您必须在阵列模式中设置复选框或单选按钮,例如:

<input type="checkbox" id="A" name="A[]">A <br />

并按照以下方式将您的数组放在控制器中:

foreach(Input::get('A') as $name)
{
   $model=new yourModelName;
   $model->yourRowName=$name;
   $model->save(); 
    return->redirect()->back();
 }

结束了。

答案 1 :(得分:0)

它应该类似于以下内容:

public function post(Request $request)
{
    DB::connection('datab1')
        ->table('tab1')
        ->insert([    
            'A' => $request->has('A') ? $request->A : null,
            'B' => $request->has('B') ? $request->B : null,
            'AINE' => $request->has('AINE') ? $request->AINE : null,
        ]
    );
}