【问题标题】:Laravel 5.1 Radio Buttons and CheckboxesLaravel 5.1 单选按钮和复选框
【发布时间】:2016-07-18 16:30:28
【问题描述】:

在 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,即使选择了 NONE 单选按钮,或者选中了复选框。谁能解释一下?

【问题讨论】:

    标签: php html forms laravel laravel-blade


    【解决方案1】:

    您必须在数组模式下设置复选框或单选按钮,例如:

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

    它完成了。

    【讨论】:

      【解决方案2】:

      应该是这样的:

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

      【讨论】:

        猜你喜欢
        • 2011-10-18
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-16
        • 2013-11-18
        • 2017-01-07
        • 2015-12-09
        相关资源
        最近更新 更多