2016-03-30 197 views
0

在Laravel刀模板,我們有一些可選單選按鈕的形式和複選框,像Laravel 5.1單選按鈕和複選框

<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數據庫,即使選中了NONE單選按鈕,或者選中了複選框。有人可以解釋一下嗎?

回答

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, 
     ] 
    ); 
} 
1

你必須forexample設置你的複選框或單選按鈕處於陣列模式:

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

和foreach陣列中的控制器這樣的:

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

並完成。