У меня есть три таблицы Categories
, Websites
, Categorywebsites
Как получить рекурсивные данные таблицы в Laravel
Категория таблица имеет поля:
id | parent_id | name
таблица Сайт имеет поля:
id | name
В таблице категорииwebsites есть поля:
id | website_id | category_id
Я хотел бы получить родительские категории с их дочерними категориями и их соответствующими категориями, а затем их сведениями о веб-сайтах, соответствующими категорииwebsites в одном массиве.
Я определил отношения в категории модели
public function categories(){
return $this->hasMany('Category','parent_id','id');
}
// To get categories website linked to category.
public function categorywebsites(){
return $this->hasMany('Categorywebsite');
}
public function websites(){
return $this->belongsToMany('Website');
}
Я использую этот код, чтобы извлечь все данные в иерархии, но я получаю
Array(
[0] => Array
(
[id] => 1
[parent_id] => 0
[cat_name] => Search Engine
[categories] => Array
([0] => Array([id] => 6
[parent_id] => 1
[cat_name] => PPC
[websites] => Array
([0] => Array(
[id] => 1
[website_id] => 1
[category_id] => 6
)[1] => Array
([id] => 2
[website_id] => 2
[category_id] => 6
)[2] => Array
(
[id] => 3
[website_id] => 3
[category_id] => 6
)
)
)
Первый мой мотив также получить веб-сайт подробно с subarray categrywebsites.I хотел бы получить данные, используя один запрос. Этот процесс делает систему медленной.
Любая помощь приветствуется
Заранее спасибо