2016-06-11 2 views
0

나는 Laravel 5.2을 사용하고 있습니다. 나는이 this-카테고리 및 하위 범주 표시 Laravel

Category.php 추천 Eloquent Models -

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Category extends Model 
{ 
    protected $table  = 'categories';   //Table Name 
    public $timestamps  = false; 
    public $incrementing = false;     //For Non integer Primary key 
    protected $primaryKey = 'name'; 

    protected $fillable  = [ 
            'name' 
           ]; 

    public function SubCategory() 
    { 
     return $this->hasMany('App\SubCategory', 'category_id', 'id'); 
    } 
} 

그리고 SubCategory.php - 그래서

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class SubCategory extends Model 
{ 
    protected $table = 'sub_categories';   //Table Name 
    public $timestamps = false; 

    protected $fillable  = [ 
            'category_id', 
            'name' 
           ]; 
} 

, 지금은 컨트롤러 -이를 호출하는 경우

return Category::with('SubCategory')->get(); 

나는, 내가 그 하위 범주 링크 바로 작동하고 알 수 있도록 this-

[ 
    { 
    "id": 3, 
    "name": "Beahan-Mueller", 
    "sub_category": [ 
     { 
     "id": 27, 
     "category_id": 3, 
     "name": "Carroll Trail" 
     }, 
     { 
     "id": 3, 
     "category_id": 3, 
     "name": "Davis Lake" 
     }, 
     { 
     "id": 9, 
     "category_id": 3, 
     "name": "Lehner Ranch" 
     } 
    ] 
    }, 
    { 
    "id": 10, 
    "name": "Beahan, Stark and McKenzi", 
    "sub_category": [ 
     { 
     "id": 1, 
     "category_id": 10, 
     "name": "Dibbert Summit" 
     }, 
     { 
     "id": 18, 
     "category_id": 10, 
     "name": "Kris Mount" 
     } 
    ] 
    } 
] 

같은 무엇입니까?

하지만 this-

컨트롤러 같은 값을 표시하는 블레이드와 그것을 사용하려는 경우 내 문제는 -보기

return view('public.listing.main', [ 
             'current_page'   => 'Add Listing', 
             'categories'   => Category::with('SubCategory')->get() 
            ]); 

- 내가

@foreach ($categories as $category) 
    <li class="no-border"> 
     <label class="pull-left"> 
      <input type="checkbox" name="cat_{{ $category->id }}" checked> 
      <strong> {{ $category->name }} (21)</strong> 
     </label> 
     <ul> 
      @foreach($category->sub_category as $sub_cat) 
       <li> 
        <label class="pull-left"> 
         <input type="checkbox" checked value="{{ $sub_cat->id }}"> {{ $sub_cat->name }} (7) 
        </label> 
       </li> 
      @endforeach 
     </ul> 

    </li> 
@endforeach 

을 그것과 같은 오류를 찾으십시오 -

Laravel Error

누구든지 도와 드릴 수 있습니까? 왜이 오류가 발생합니까?

+0

주세요 var_dump ($ categories); die; 귀하의보기 및 결과 표시. –

답변

1

두 번째 foreach에서 subCategory 관계 이름이 잘못되었습니다.

@foreach($category->subCategory as $sub_cat) 
    // code here 
@endforeach 

대신 sub_category이어야합니다.

+0

감사합니다. 작동 중입니다. –