어떻게 Laravel Eloquent 를 사용 하여 무한 분 류 를 개발 합 니까?
우 리 는 어린이 상점 의 분 류 를 보 여 주 는 미니 프로젝트 를 만 들 것 입 니 다.모두 5 급 입 니 다.다음 과 같 습 니 다.
데이터베이스 이전
간단 한 데이터 시트 구조:
Schema::create('categories', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->unsignedBigInteger('category_id')->nullable();
$table->foreign('category_id')->references('id')->on('categories');
$table->timestamps();
});
자신 과 연 결 된 name 필드 만 있 습 니 다.그래서 대부분의 부 급 분류 categoryid=NULL,각 하위 분류 마다 parentid데이터 시트 데 이 터 는 다음 과 같 습 니 다.
Eloquent 모델 과 관련 관계
우선,app/Category.php 에서 간단 한 hasMany()방법 을 만 들 고 분 류 는 자체 분 류 를 가 질 수 있 습 니 다.
class Category extends Model
{
public function categories()
{
return $this->hasMany(Category::class);
}
}
좋 은 연극 오 프 닝 본문 이 가장 절묘 한'계책'이다.너 는 이렇게 귀속 관 계 를 묘사 할 수 있다 는 것 을 아니?다음 과 같다.
public function childrenCategories()
{
return $this->hasMany(Category::class)->with('categories');
}
따라서 카 테 고리:with('categories')를 호출 하면 하급'하위 분류'를 받 지만 카 테 고리:with('children Categories')를 통 해 무한 정 을 실현 할 수 있 습 니 다.루트 와 컨트롤 러 방법
현재,우 리 는 전례대로 모든 분류 와 하위 분 류 를 표시 하려 고 시도 합 니 다.
routes/web.php 에 다음 내용 을 추가 합 니 다.
Route::get('categories', 'CategoryController@index');
app/Http/Category Controller.php 는 다음 과 같 습 니 다.
public function index()
{
$categories = Category::whereNull('category_id')
->with('childrenCategories')
->get();
return view('categories', compact('categories'));
}
우 리 는 부모 클래스 만 불 러 오고 하위 클래스 를 관계 로 합 니 다.쉽 죠?보기 와 귀속 서브 보기
마지막 으로 페이지 에 렌 더 링 합 니 다.resources/views/categories.blade.php 파일:
<ul>
@foreach ($categories as $category)
<li>{{ $category->name }}</li>
<ul>
@foreach ($category->childrenCategories as $childCategory)
@include('child_category', ['child_category' => $childCategory])
@endforeach
</ul>
@endforeach
</ul>
우 리 는 먼저 최상 위 부모 클래스 를 옮 겨 다 닌 다음 부모 클래스 의 하위 클래스 를 옮 겨 다 닌 다음@include 로 하위 클래스 의 하위 클래스 를 불 러 옵 니 다.가장 좋 은 부분 은 resources/views/admin/child 입 니 다.category.blade.php 는 재 귀적 으로 자신 을 불 러 옵 니 다.코드 보기:
<li>{{ $child_category->name }}</li>
@if ($child_category->categories)
<ul>
@foreach ($child_category->categories as $childCategory)
@include('child_category', ['child_category' => $childCategory])
@endforeach
</ul>
@endif
childcategory.blade.php 내부 에@include('childcategory')따라서 현재 하위 클래스 에 클래스 가 있 으 면 템 플 릿 은 하위 클래스 를 재 귀적 으로 불 러 옵 니 다.그렇지!저 희 는 무한 등급 의 하위 클래스 를 가지 고 있 습 니 다.-데이터베이스 든 관련 관계 든 보기 든.
이상 은 Laravel Eloquent 를 어떻게 사용 하여 무한 분 류 를 개발 하 는 지 에 대한 상세 한 내용 입 니 다.Laravel Eloquent 를 사용 하여 무한 분 류 를 개발 하 는 데 관 한 자 료 는 저희 의 다른 관련 글 에 주목 하 시기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
단순 Laravel+Vue.js에서 VueUI를 사용하여 로그인 및 등록Laravel에는 웹 팩과 같은 Laravel-Mix가 있는데, 이를 이용해서 Laravel에 Vue.js를 실현할 수 있다. 이번에는 몇 가지 명령을 통해 간단하게 VueUI로 로그인하여 로그인을 할 수 있습니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.