2016-12-15 17 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(); 

@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ただ一つの質問、例えば各ポストはカテゴリを持っているか、サブカテゴリを持っている可能性があり、どのように私はいないでしょうが:nはあなたのビューでは、あなたがとして行うことができますポストが1つの選択フィールドを使ってカテゴリまたはサブカテゴリの場合 – Pedro

+0

あなたの選択において、データは同じテーブルから来るので、それぞれが一意の 'id'を持つようになります。バックエンドでは、カテゴリテーブルの 'id'を見つけることができ、それはあなたに情報を与えるでしょう。 –