【问题标题】:Save array of checkboxes to database with laravel 5.1使用 laravel 5.1 将复选框数组保存到数据库
【发布时间】:2016-02-02 05:07:21
【问题描述】:

我是 Laravel 的新手,我正在尝试保存一个带有输入的表单,并且一组复选框是从数据库中填充的值。

我得到的只是 DB 列中的单词数组或空值。所有其他输入都保存正常。

这是我的控制器:

public function storePC()
{               
    $rules = array(
        'brand'       => 'required',
        'touchscreen'       => 'required',
        'processor'       => 'required',            
        'condition'       => 'required',
        'faults'          => 'required',
    );
    $validator = Validator::make(Input::all(), $rules);

    // process the login
    if ($validator->fails()) {
        return Redirect::to('/quote')
            ->withErrors($validator)
            ->withInput(Input::except('password'));
    } else {
        // store
        $service = new Service;
        $service->brand       = Input::get('brand');
        $service->touchscreen      = Input::get('touchscreen');
        $service->processor      = Input::get('processor');
        $service->condition      = Input::get('condition');                 
        $service['faults'] = json_encode($quote['faults']);
        $service->save();

        // redirect
        Session::flash('message', 'Service Successfully created!');
        return Redirect::to('/');
    }
}

这是我的观点:

{!! Form::open(array('url' => '/store-service')) !!}

                <div class="form-group">
                  {!! Form::Label('brand', 'Brand:') !!}
                  <select class="form-control" name="brand" id="brand">
                    <option value="" selected="selected">Please select a Brand</option>
                    @foreach($brands as $brand)
                      <option value="{{$brand->brand}}">{{$brand->brand}}</option>
                    @endforeach
                  </select>
                </div>

                <div class="form-group">
                  {!! Form::Label('webcam', 'Does your device have an inbuilt Webcam?') !!}
                  <select class="form-control" name="webcam" id="webcam">
                      <option value="" selected="selected">Please select</option>                     
                      <option value="yes">Yes</option>
                      <option value="no">No</option>
                  </select>
                </div>                  

                <div id="second-step">
                    <div class="form-group">
                      {!! Form::Label('touchscreen', 'Does your device have a Touchscreen?') !!}
                      <select class="form-control" name="touchscreen" id="touchscreen">
                          <option value="" selected="selected">Please select</option>                         
                          <option value="yes">Yes</option>
                          <option value="no">No</option>
                      </select>
                    </div>

                    <div class="form-group">
                      {!! Form::Label('processor', 'Processor:') !!}
                      <select class="form-control" name="processor" id="processor">
                        <option value="" selected="selected">Please select a Processor</option>
                        @foreach($processors as $processor)
                          <option value="{{$processor->processor}}">{{$processor->processor}}</option>
                        @endforeach
                      </select>
                    </div>

                    <div class="form-group">
                      {!! Form::Label('condition', 'Is your laptop fully working and in good condition?') !!}
                      <select class="form-control" name="condition" id="condition">
                          <option value="yes" selected="selected">Yes</option>                            
                          <option value="no">No</option>
                      </select>
                    </div>
                    <div id="third-step">
                        <div class="col-md-12">
                            <div class="span8 mutli-column">
                                <div class="row-fluid">
                                    <div class="form-group">                                    
                                        @foreach($faults as $fault)
                                        <div class="col-md-3">
                                            <span><i class="fa fa-question-circle" rel="popover" data-content="{{$fault->fault_tooltip}}"></i></span>
                                            <label class="checkbox-inline"><input id="faults" type="checkbox" name="faults[]" value="{{$fault->fault}}">{{$fault->fault}}</label>
                                        </div>
                                        @endforeach
                                    </div>                  
                                </div>                              
                            </div>
                        </div>
                    </div>
                </div>
            {!! Form::submit('Submit', array('class' => 'btn-lg btn-danger')) !!}

            {!! Form::close() !!}

我想知道是否有人可以举例说明如何将故障复选框数组保存到单个列中。

谢谢

【问题讨论】:

    标签: arrays forms laravel laravel-5.1


    【解决方案1】:

    希望对你有帮助

    使用

    $service-&gt;faults = json_encode($quote['faults']);

    代替

    $service['faults'] = json_encode($quote['faults']);

    【讨论】:

    • 没问题,如果您对解决方案感到满意,请将答案标记为已解决。
    猜你喜欢
    • 2018-05-08
    • 2017-01-29
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多