2017-04-16 118 views
0

我試圖獲取複選框的選中Laravel 5.2:獲取複選框選中

這是我的看法

<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> 

編輯 這裏是我的編輯控制器

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

這裏我的更新控制器

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

當我傾倒我$temp->extra_servicesarray(1) { [0]=> string(3) "1,2" }

但在視圖中的第一個複選框選中僅第二個是不是它應該被檢查過。

我在做什麼錯在這裏。

+0

只是投票的問題並不意味着我明白我的錯誤請描述的地方。 –

+0

您需要添加更多信息。 $ temp-> extra_services的內容是什麼? – Jason

+0

我在我的問題中提到它是一個數組''當我dump我$ temp-> extra_services我得到數組(1){[0] =>字符串(3)「1,2」}'無論如何將添加控制器的問題 –

回答

0

當你這樣做數組($ temp-> extra_services)你沒有像你期望的那樣創建數組。

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

你需要的是你的in_array創建從一個逗號分隔字符串

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

使用此第二個數組,你應該是好去。

+0

是的,這工作找到我感謝 –