2013-02-06 3 views
0

I이 작동하지만 laravel 웅변 방법을 따라하지 않는 것 다음 코드를Laravel 3 웅변 ORM 사용

Article::left_join('images', 'articles.id', '=', 'images.article_id') 
      ->join('article_category', 'articles.id', '=', 'article_category.article_id') 
      ->where('article_category.category_id', '=', $category_id) 
      ->get(); 

내가 4 개 테이블이를; 서로 많은 관계가 많은 기사 및 카테고리, 기사 ID 및 카테고리 ID를 보유하는 피벗 테이블 article_category 테이블 및 기사와 일대일 관계가있는 이미지 테이블을 포함합니다.

I 설정 내 모델과 같이

class Category extends Eloquent { 
    public static function get_articles($category_id) { 
     return static::find($category_id)->has_many_and_belongs_to('Article'); 
    } 

class Article extends Eloquent { 
    public function categories() { 
     return $this->has_many_and_belongs_to('Category'); 
    } 

    public function image() { 
     return $this->has_one('Image'); 
    } 

그러나 나는 함께 정보의 세 비트를 얻을 수없는 것. 내가 할 수있는 :

Category::get_articles($current_category)->get(); 

특정 카테고리의 모든 기사를 얻으려면하지만이 기사의 이미지를 얻을 수없는 것,에 나는 체인 수 아무것도 없을 것 같다? 내가 잘못하고 있는게 아니라면? 내가 빠진 트릭이 있니?

나는 심지어 문서에서 옷을 벗었 버전을 시도 :

foreach (Article::with('image')->get() as $article) { 
    echo $article->image->foo; 
} 

그러나 나는 오류 얻을 : 비 개체의 속성을 얻으려고 노력을 위해서 var_dump은 $가 article-> 이미지 객체 보여줍니다에도 불구하고! 기묘한.

감사합니다.

답변

0

이미지 테이블의 모델을 설정하지 않은 경우 그렇게하십시오. ORM에는 모델이 필요하므로 '이미지'가 무엇을 의미하는지 알 수 있습니다.

:: with 메서드를 사용하여 범주 정보를 가져올 수 있습니까, 아니면 너무 까다 롭습니다?