2017-01-12 1 views
1

laravel에서 나무의 레벨을 얻고 싶습니다. 나는 세 가지 수준으로가는 범주 트리를 가지고 있습니다.laravel에서 나무의 레벨을 계산하는 방법

->parent category 
    -->sub category 
    -->child category 

상위 카테고리에 얼마나 많은 레벨이 있는지 알고 싶습니다. 답 위의 예 내 모델 2.

될 것이라고 그렇게 나는 다음과 같은 관계가 정의되어 있습니다

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

모든 제안은 감사합니다. 감사!

+0

'A'는'B'와'C'라는 두 개의 자식이 있다고 가정 해 봅시다.'C'는'D'를 자식으로 가지고 있지만'B'는 자식을 갖지 않으면 어떻게 될까요? 이 사건은 1 또는 2가 될 것입니다. 정확히 이것을 위해 무엇이 필요합니까? – Neat

답변

0

관계를 통해 속성이라고 부를 수 있습니다. 그렇게 말하면서, 당신은 같은 대답을 몇 가지 방법으로 얻을 수 있습니다. 그것을 컬렉션을 반환하는 선택 쿼리를 실행 한 다음 전원을 계산합니다이 방법을 수행 재산권

$model->children->count();

.

기능$model->children()->count();

이 레코드를 계산 한 쿼리를 실행합니다.

+0

OP를 올바르게 이해한다면 그는 각 레이어의 데이터 양이 아니라 레이어의 양을 원합니다. – milo526

관련 문제