현재 위치: > 최신 기사 목록> Laravel 7 무한 레벨 분류 구현 방법 및 모범 사례

Laravel 7 무한 레벨 분류 구현 방법 및 모범 사례

gitbox 2025-06-28

소개하다

Laravel은 무제한 수준의 분류를 포함하여 많은 강력한 기능을 제공하는 인기있는 PHP 개발 프레임 워크입니다. 무한 레벨 분류는 각 노드가 무한 수의 자식 노드를 가질 수있는 트리 구조로 데이터를 구성하는 방법입니다. 무제한 분류는 뉴스 분류, 제품 분류 및와 같은 많은 응용 프로그램에서 일반적입니다.

구현 방법

데이터베이스 테이블 디자인

무한 수준의 분류를 구현하려면 먼저 데이터베이스 테이블을 설계해야합니다. 일반적인 디자인 방법은 ID와 Parent_ID의 두 필드를 사용하는 것입니다. ID 필드는 각 노드를 고유하게 식별하는 데 사용되며 Parent_ID 필드는 노드의 부모 노드를 나타내는 데 사용됩니다. 루트 노드의 Parent_id는 일반적으로 0입니다.

 CREATE TABLE categories (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    parent_id INT DEFAULT 0
);

이 예에서는 id, name 및 parent_id 필드가있는 카테고리 테이블을 만듭니다. ID 필드는 자동으로 증가하는 기본 키이며 이름 필드는 분류 이름을 저장하는 데 사용되며 Parent_ID 필드는 부모 노드의 ID를 저장하는 데 사용됩니다.

데이터베이스 쿼리

지정된 범주의 모든 하위 범주를 얻기 위해 재귀 쿼리를 사용할 수 있습니다. 다음은 Laravel의 Eloquent ORM을 사용한 재귀 쿼리의 샘플 코드입니다.

 class Category extends Model
{
    public function children()
    {
        return $this->hasMany(Category::class, 'parent_id', 'id');
    }

    public function descendants()
    {
        return $this->children()->with('descendants');
    }
}

이 예에서는 카테고리 모델의 어린이 및 후손 협회 방법을 정의합니다. Children Method는 현재 분류의 모든 직접 서브 클래스를 반환하고 자손 방법은 현재 분류의 모든 후손을 반환합니다.

카테고리 목록 표시

보기에 분류 목록을 표시하려면 재귀 뷰를 사용할 수 있습니다. 다음은 블레이드 템플릿 엔진을 사용하는 샘플 코드입니다.

 @foreach ($categories as $category)
    {{ $category->name }}
    @if ($category->children->count())
        @include('categories.partial.list', ['categories' => $category->children])
    @endif
@endforeach

이 예에서는 @fireach 태그를 사용하여 분류 목록을 표시합니다. 각 범주에 대해 먼저 카테고리의 이름을 표시 한 다음 하위 범주가 있는지 확인합니다. 서브 클래스가있는 경우 @include 지시문을 사용하여 부분보기를 소개하고 서브 클래스를 전달합니다.

결론적으로

이 기사에서는 Laravel 프레임 워크에서 무한 수준 분류를 구현하는 방법을 소개합니다. 먼저 분류 정보를 저장하기 위해 데이터베이스 테이블을 설계 한 다음 Repursive Query에 Eloquent ORM을 사용한 다음 Blade Template Engine을 사용하여 분류 목록을 표시했습니다. 무한 레벨 분류는 데이터를 더 잘 구성하고 관리하는 데 도움이되는 매우 실용적인 기능입니다.