2013-06-07 9 views
0

저는 Laravel 4를 처음 사용하고 몇 가지 개념을 사용하므로 쉽게 익숙해집니다. 웹 저장소를 개발 중이며 카탈로그 트리에있는 모든 하위 항목의 모든 기사를 가져 오는 데 문제가 있습니다.Eloquent (Laravel4) 및 Nested-sets (Cartalyst) - 모든 자손에게서 모든 기사를 얻는 방법?

내 트리 구조는 중첩 된 세트 (Cartalyst)를 사용하여 카탈로그 테이블에 저장됩니다

Category 1 
--Sub-category 1.1 
----Sub-category 1.1.1 
----Sub-category 1.1.2 
--Sub-category 1.2 
Category 2... 

는 그럼 난 기사를위한 테이블과 피벗 테이블 article_catalogue 있습니다. 그래서 피봇 테이블을 사용하여 하위 카테고리 1.1.1과 2 개의 기사를 하위 카테고리 1.1.2와 3 개의 기사를 짝 지어 ​​사용했습니다. 이제는 제 모델에서 여러 관계를 정의하여 Eloquent ORM을 사용할 수있게되었습니다.

사용자가 하위 카테고리 1.1 또는 카테고리 1을 클릭했을 때 선택된 노드 (있는 경우) 및 선택한 트리 노드의 모든 하위 노드에서 모든 기사를 표시하고 싶습니다. 중복 및 페이징이 있습니다.

필자는 피봇 테이블의 모든 노드와 기사를 페어링 할 수 있지만 Cartalyst에서 Eloquent 및 Nested-sets를 사용하여 설명 된대로이 작업을 수행 할 수있는 방법이 있습니까? 내가 다른 솔루션/제안에 열려있어

... 난 쿼리 빌더를 사용하여 종료하고이 작동

답변

0

:

$articles = DB::table('articles') 
->join('article_catalog', 'article_catalog.article_id', '=', 'articles.id') 
->join('catalogs', 'catalogs.id', '=', 'article_catalog.catalog_id') 
->whereBetween('catalogs.lft', array($activeItem->lft, $activeItem->rgt)) 
->select('articles.*')->paginate(9); 

당신이 Laravel IRC에있는 모든 도움을 crynobone 감사 대화방! 누군가가 더 좋은 해결책을 제시하면 알려주세요! :)