在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,即使选中了单选按钮,也没有选中复选框。有人可以解释一下吗?
答案 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,
]
);
}