Как получить данные трех категорий уровней (Category, SubCategory, SubCategoryThree) и отобразить относительные данные в выбранной категории - PullRequest
4 голосов
/ 24 июня 2019

У меня есть три таблицы.Структура:

1. categories

    id - integer

    name - string

2. sub_Categories

    id - integer

    category_id - integer

    name - string


3. sub_catergory_threes

    id - integer

    sub_Category_id - integer

    name- string

Теперь я хочу показать три категории уровня, такие как, Категория и при наведении курсора на любой элемент категории, Подкатегории этой категории показывает и при наведении на любой элемент Подкатегории, Sub_Categories_Three этой Подкатегориипоказывает

im, используя красноречивый laravel, вот Мои Модели

Категория Модель

public function subcategories(){
    return $this->hasMany('App\SubCategory');
}

Модель Подкатегории

public function subcategoriesthree(){
    return $this->hasMany('App\SubCategoryThree');
}

public function category(){
    return $this->belongsTo('App\Category');
}

ПодкатегорииТри модель

public function subcategory(){
    return $this->belongsTo('App\SubCategory');
}

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Таким образом, вы можете редактировать свою модель следующим образом:

Подкатегория

public function subcategoriesthree(){
    return $this->hasMany('App\SubCategoryThree');
}

public function category(){
    return $this->belongsTo('App\Category', 'category_id');
}

Подкатегории Три

public function subcategory(){
    return $this->belongsTo('App\SubCategory', 'sub_Category_id');
}

И в вашем контроллере:

$categories = Category::with(['subcategories', 'subcategories.subcategoriesthree'])->get();

И после этого вы можете dd($categories) и увидеть под subcategories subcategoriesthree.

1 голос
/ 24 июня 2019

Вы можете использовать отношение ELoquent для загрузки всех связанных данных

$categories = App\Category::with('subcategories.subcategoriesthree')->get();

Это загрузит все категории вместе с подкатегориями и подкатегориями

Если вам нужно загрузить их динамически, тогдав вашем контроллере вы можете использовать

public function loadSubCategory($categoryId)
{
    $category = App\Category::findOrFail($categoryId);
    $subcategories = $category->subcategories()->get();
    return $subcategories;
}

public function loadSubSubCategory($subcategoryId)
{
    $subcategory = App\SubCategory::findOrFail($subcategoryId);
    $subsubcategories = $subcategory->subcategoriesthree()->get();
    return $subsubcategories;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...