2017-04-16 6 views
0

geprüft Ich versuche, Checkbox zu erhalten, wieLaravel 5.2: get Checkbox

geprüft

Hier ist meine Ansicht

<div class="form-group"> 
       {!! Form::label('extra_services', 'Add extra services') !!} 
       <div class="form-group"> 
        <?php var_dump (array($temp->extra_services))?> 
        @foreach($extra as $ext) 
         <div class="checkbox"> 
          <label> 
           {!! Form::hidden('extra_services', 0) !!} 
           <input type="checkbox" name="extra_services[]" value="{!! $ext->id !!}" 
             {!! in_array($ext->id, array($temp->extra_services)) ? 'checked' : '' !!} > 
           {!! $ext->title !!} 
          </label> 
         </div> 
        @endforeach 
       </div> 
      </div> 

bearbeiten hier ist meine bearbeiten Controller

public function edit($id) 
    { 
     $temp = Template::query()->findOrFail($id); 
     $extra = TempExtraService::all(); 
     return view('admin.templates.tempDetails.edit', compact('temp', 'extra')); 
    } 

hier Mein Update-Controller

public function update(Requests\TemplateRequest $request, $id) 
    { 
     $temp->extra_services = implode($request->extra_services, ','); 
     $temp->save(); 
     return Redirect::back()->with('states', 'Templates has been updated successfully'); 
    } 

wenn ich Dump meine $temp->extra_services Ich habe array(1) { [0]=> string(3) "1,2" }

aber in der Ansicht das erste Kontrollkästchen aktiviert nur die zweite nicht das ist, sollte es zu überprüfen sein.

was ich hier falsch mache.

+0

nur unten die Frage abstimmen bedeutet nicht, dass ich verstanden habe, wo mein Fehler bitte beschreiben. –

+0

Sie müssen weitere Informationen hinzufügen. Was ist der Inhalt von $ temp-> extra_services? – Jason

+0

Ich erwähne in meiner Frage, es ist ein Array 'wenn ich meine $ temp-> extra_services dump ich array (1) {[0] => string (3)" 1,2 "}' sowieso wird der Controller der Frage hinzufügen –

Antwort

0

Wenn Sie Array ($ temp-> extra_services) tun, erstellen Sie das Array nicht wie erwartet.

var_dump(array($temp->extra_services)); // shows ["1,2"] 

Was Sie wollen, ist ein Array aus einem Komma getrennte Zeichenfolge

var_dump(explode(",", $temp->extra_services)); // Show [1,2] 

Verwenden Sie diese zweite in Ihrem in_array und Sie sollten gut gehen zu erstellen.

+0

ja das funktionierte finden für mich danke –