2016-03-30 2 views
0

В шаблоне лезвия Laravel, у нас есть форма с некоторыми дополнительными радиокнопок и флажков, какLaravel 5.1 Радио Кнопки и Checkboxes

<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 

В контроллере, в почтовый метод, у нас есть

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

И его закончен.

Смежные вопросы