Радиокнопки и флажки Laravel 5.1

В шаблоне лезвия 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 во все три столбца в базе данных, даже если не выбран ни один из переключателей или установлен флажок. Кто-нибудь может объяснить?


person Qammar Feroz    schedule 30.03.2016    source источник


Ответы (2)


Вы должны установить флажки или переключатели в режиме массива, например:

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

И все готово.

person ehsan khodayar    schedule 30.03.2016

Должно получиться примерно следующее:

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,
        ]
    );
}
person user2094178    schedule 30.03.2016