0

I am new to Laravel and I am trying to save a form with inputs and an array of checkboxes were the values get populated from the database.

All I get is the word array or null in the DB column. All the other inputs are saved ok.

Here is my controller:

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

and here is my view:

{!! 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() !!}

I wonder if anyone could put an example of how to save the array of checkboxes for the faults into a single column.

Thanks

1 Answer 1

1

i hope this helps

Use

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

Instead of

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

Sign up to request clarification or add additional context in comments.

1 Comment

no problem please mark the answer resolved if you are happy with the solution.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.