Infinitus Classification은 데이터 관리의 일반적인 분류 방법으로, 제품 또는 기사 분류와 같은 다단계 및 다중 소문 시나리오에 적합합니다. 이 기사는 ThinkPhP5 프레임 워크를 통해 완전한 프로세스 및 샘플 코드를 설계하고 구현하는 방법을 설명합니다.
Infinitus Classification은 분류가 여러 하위 범주를 가질 수있게하며, 각 하위 카테고리는 또한 레이어-넥 분류 시스템을 형성하기 위해 자체 하위 범주를 계속 가질 수 있습니다. 이 구조는 복잡한 분류 관계를 관리하고 표시하는 데 유연하고 편리합니다.
무한 분류를 구현하려면 일반적으로 다음 필드가 포함 된 분류 테이블을 만들어야합니다.
ThinkPhp5에서는 모델 클래스를 사용하여 분류 데이터에서 작동합니다. 다음 예제는 카테고리 모델을 정의하고 직접 서브 클래스를 얻고 모든 서브 클래스를 재귀 적으로 얻는 방법을 구현합니다.
namespace app\index\model;
use think\Model;
class Category extends Model
{
// 테이블 이름을 지정합니다(기본 규칙이 충족되지 않은 경우)
protected $table = 'category';
// 현재 분류의 직접 하위 범주를 얻으십시오
public function childrenCategories()
{
return $this->hasMany('Category', 'parent_id', 'id')
->order('id', 'asc');
}
// 모든 하위 범주를 재귀 적으로 얻습니다,하위 범주를 포함한 하위 범주
public function allChildrenCategories()
{
return $this->childrenCategories()->with('allChildrenCategories');
}
}
위의 방법은 ThinkPhp의 연관성 모델 기능을 사용하여 유연하게 분류 계층 적 데이터를 촉진합니다.
컨트롤러는 모델을 통해 분류 정보를 쿼리하고 작동 할 수 있습니다. 샘플 코드는 첫 번째 수준 분류를 가져오고 Traversal은 하위 클래스를 얻습니다.
$categories = Category::where('parent_id', 0)->select();
foreach ($categories as $category) {
$childrenCategories = $category->childrenCategories;
// 서브 클래싱은 여기에서 처리 할 수 있습니다
}
특정 범주의 모든 하위 범주 (다단계 하위 범주 포함)를 얻어야하는 경우 다음을 사용할 수 있습니다.
$allChildrenCategories = $category->allChildrenCategories;
이 방법은 더 많은 작업을 계속 수행 할 수있는 연관 모델 모음을 반환합니다.
관점에서, 다단계 분류 데이터를 표시하기 위해, 재귀 함수를 통해 계층 적 들여 쓰기 디스플레이를 구현할 수 있습니다.
function renderCategories($categories, $indent = 0)
{
foreach ($categories as $category) {
echo str_repeat(' ', $indent);
echo $category->name . '<br/>';
renderCategories($category->childrenCategories, $indent + 1);
}
}
renderCategories($categories);
또한 ThinkPhP5 템플릿 엔진은 Volist 태그를 사용하여 카테고리의 재귀 렌더링을 지원합니다.
<ul>
{volist name="categories" id="category"}
<li>{$category.name}</li>
{volist name="category.childrenCategories" id="child"}
<ul>
<li>{$child.name}</li>
{include file="category_tree" /}
</ul>
{/volist}
{/volist}
</ul>
이 방법은 간단하고 유지하기 쉽고 다단계 분류의 재귀 디스플레이를 실현합니다.
합리적인 데이터 테이블 구조, 모델 관계 정의 및 재귀 디스플레이를 통해 ThinkPHP5는 복잡한 분류 요구를 충족시키기 위해 무한 분류 기능을 효율적이고 유연하게 구현할 수 있습니다. 이 기사의 소개 및 샘플 코드가 귀하의 프로젝트에서 다단계 분류를 구현할 수 있도록 도움이되고 참조 할 수 있기를 바랍니다.