Я использую Laravel 5.6 и MySQL.У меня есть categories
, sub_categories
, category_info
и services
.
A category
может иметь 1 или более sub_categories
.A category
принадлежит к одной категории меню
A sub_category
имеет только одну category
.
A category
имеет 1 category
информационную запись.Не имеет значения, будет ли category
или sub_category
иметь одну запись в таблице category_info.
Моя структура таблицы выглядит следующим образом
Menu_Categories
id
1,
2
Категории
id, parent_category_id, menu_category_id
1, null, 1
2, null, 1
3, 1, null
4, 1, null
Category_Info
category_id, name
1, Legal Services
2, Misc
3, US Legal Services
4, Europe Legal Services
Контроллер
$cats = MenuCategories
::with(['categories', 'categories.info', 'categories.sub_categories'])
->get();
Меню Категории Модель
public function categories() {
return $this->hasMany(Categories::class, 'menu_category_id', 'id');
}
Категории Модель
public function menu_categories() {
return $this->belongsTo(MenuCategories::class, 'menu_category_id');
}
public function sub_categories() {
return $this->hasOne(Categories::class, 'parent_category_id');
}
public function info() {
return $this->hasOne(CategoryInfo::class, 'category_id');
}
Подкатегория Информация Модель
public function category() {
return $this->belongsTo(CategoryInfo::class);
}
Мне нужно вернуть категории иинформация о категориях выглядит следующим образом:
{
Categories: {
{
id: 1,
parent_category_id, null,
Sub_Categories: {
{
id: 3
parent_category_id: 1
Category_Info: {
{
category_id: 3,
name: US Legal Services
}
}
},
{
id: 4
parent_category_id: 1,
Category_Info: {
{
category_id: 4,
name: Europe Legal Services
}
}
},
},
Category_Info: {
{
category_id: 3,
name: Legal Services
}
}
},
{
id: 2,
parent_category_id, null,
Category_Info: {
{
category_id: 3,
name: Misc
}
}
},
}
}
Когда у меня установлены отношения, он возвращает данные неправильно.Он не возвращает Category_Info для sub_categories
.
{
Categories: {
{
id: 1,
parent_category_id, null,
Sub_Categories: {
{
id: 3
parent_category_id: 1
},
{
id: 4
parent_category_id: 1,
},
},
Category_Info: {
{
category_id: 3,
name: Legal Services
}
}
},
{
id: 2,
parent_category_id, null,
Category_Info: {
{
category_id: 3,
name: Misc
}
}
},
}
}
Можно ли вернуть Category_Info для sub_categories
?Заранее спасибо.