2015-12-30 178 views
1

我已經爲類別和子類別創建了一個下拉列表。當我提交表單時,它工作正常,但是當我編輯表單時,類別字段不包含來自數據庫的重新填充數據,類別下拉菜單就像創建表單時顯示的那樣。編輯下拉列表不提取值

這裏是我的編輯:

<div class="form-group"> 
    {!! Form::label('category','Category:') !!} 
    <select name="category" id="category" class="form-control input-sm"> 
     @foreach($s as $k) 
      <option value="{{ $k['id'] }}">{{ $k['name'] }}</option> 
     @endforeach 
    </select> 
</div> 

<div class="form-group"> 
    {!! Form::label('subcategory','Subcategory:') !!} 
    <select name="subcategory" id="subcategory" class="form-control input-sm"> 
     <option value=""></option> 
    </select> 
</div> 

控制器:在下拉

public function edit($id) 
{ 
    // get the event 
    $event = Event::findOrFail($id); 
    $s = Category::all()->where('parent_id','=','0'); 
    $r = Event::all(); 
    $daysOfWeek = unserialize(Event::find($id)->days_of_week); 
    // show the edit form and pass the event 
    return view('event.edit',compact('event','s','r','daysOfWeek'));} 

我沒有使用過關係,我已經使用jQuery和AJAX來選擇子類別後,我選擇類別。 當我編輯表單時,我能做些什麼來獲取存儲在數據庫中的值?

+0

您的問題不明確。你能解釋更多嗎? –

+0

通常,當我們編輯表單時,我們看到所有的字段都被填充。但類別下拉式不顯示填充數據,其空格形式就像我們正在填充的第一次。 – Shweta

+0

它是因爲你沒有使用'selected ='選擇''屬性爲選中的選項 –

回答

0

有一個錯誤在你的控制方法edit()

代碼:

$s = Category::all()->where('parent_id','=','0'); // wrong 

難道不應該假設是:

$s = Category::where('parent_id','=','0')->get(); // correct 

您已經與all獲取的類別,然後通過where條件,因此它不會顯示結果。 where條件返回Illuminate\Database\Eloquent\Builderinstance而不是期望的結果。

用正確的行更新錯誤的行,結果應該顯示爲你想要的。

希望這可以幫助你。快樂編碼。乾杯。

+0

好的。我做了你所說的,但這不是我的問題,當我按下編輯按鈕,我沒有得到存儲在數據庫中的值作爲下拉選定的值。我能爲此做些什麼? – Shweta

+0

用下面的替換select:{{Form :: select('category',$ s-> toArray(),null,['class'=>'form-control input-sm'])}}' –

1

我得到了我的答案,感謝每一個人的幫助!

查看:

<div class="form-group"> 
    {!! Form::label('category','Category:') !!} 
    <select name="category" id="category" class="form-control input-sm"> 
     @foreach($s as $k) 
      @if($k['id'] == $m) 
      <option value="{{ $k['id'] }}" selected="{{$m}}">{{ $k['name'] }}</option> 
      @else 
      <option value="{{ $k['id'] }}">{{ $k['name'] }}</option> 
      @endif 
     @endforeach 
    </select> 
</div> 

<div class="form-group"> 
    {!! Form::label('subcategory','Subcategory:') !!} 
    <select name="subcategory" id="subcategory" class="form-control input-sm"> 
     @foreach($subcat as $k) 
      @if($k['name'] == $subid) 
       <option value="{{ $k['id'] }}" selected="{{$subid}}">{{ $k['name'] }}</option> 
      @else 
       <option value="{{ $k['id'] }}">{{ $k['name'] }}</option> 
      @endif 
     @endforeach 
     <option value=""></option> 
    </select> 
</div> 

控制器:

public function edit($id) 
    { 
    $event = Event::findOrFail($id); 
    $s = Category::where('parent_id','=','0')->get(); 
    $r = Event::all(); 
    $m = Event::find($id)->category; 
    $subid = Event::find($id)->subcategory; 
    $subcat = Category::where('parent_id','=',$m)->get(); 
    $daysOfWeek = unserialize(Event::find($id)->days_of_week); 
    return view('event.edit',compact('event','s','subcat','subid','r','daysOfWeek','m')); 
    }