2016-12-15 114 views
0

即時創建一個選擇類別與2 leves,一個類別和子類別,我已經創建和保存數據庫中的數據,唯一缺少的是在視圖頁面,使選擇字段顯示我的期望,但即時通訊有一些疑問,有人可以提供一個提示?選擇具有2個級別(類別和子類別)的類別

代碼示例:

categories: 
- id; 
- name; 
- parent_id; 

example data: 
1, Politics, null; 
2, Sports, null; 
3, World, null; 
4, Soccer, 2; 

Final result on Input Select: 
Politics 
Sports 
-- Soccer 
World 


my view: 
<select name="category" id="category" class="form-control"> 
           <option>Select...</option> 
            @foreach($categories as $category) 
            <option value="{{$category->id}}">{{$category->name}}</option> 

            @endforeach 
           </select> 

回答

2

創建爲categories之間的關係:

類別型號

public function subcategories() 
{ 
    return $this->hasMany('App\Category', 'parent_id'); 
} 

public function parent() 
{ 
    return $this->belongsTo('App\Category'); 
} 

然後你就可以查詢它:

$Categories = Category::whereNull('parent_id')->with('subcategories')->get(); 

我n您的看法,你可以做:

@foreach($categories as $category) 
    <option value="{{$category->id}}">{{$category->name}}</option> 
    @foreach($category->subcategories as $subcategory) 
    <option value="{{$subcategory->id}}">{{$subcategory->name}}</option> 
    @endforeach 
@endforeach 
+0

只有一個問題@pseudocode我如何將數據存儲在我的表中的情況下,例如每個崗位都有一個類別,也可能存在一個子類,我怎麼會不如果一篇文章只是通過使用一個選擇字段而針對一個類別或子類別 – Pedro

+0

在您的選擇中,數據來自同一個表格,因此每個數據將具有唯一的'id'。在後端,你可以在類別表中找到'id',它會給你提供信息。 –