【发布时间】:2019-01-01 05:08:14
【问题描述】:
我正在使用 Laravel 5.6 和 MySQL。我有categories、sub_categories、category_info 和services。
category 可以有 1 个或多个 sub_categories。 category 属于一个菜单类别
sub_category 只有一个 category。
category 有 1 个 category 信息记录。不管它是category 还是sub_category,都会在 category_info 表中有一条记录。
我的表结构如下
菜单_类别
id
1,
2
分类
id, parent_category_id, menu_category_id
1, null, 1
2, null, 1
3, 1, null
4, 1, null
类别信息
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
}
}
},
}
}
通过我建立关系的方式,它返回的数据不正确。它没有返回 sub_categories 的 Category_Info。
{
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
}
}
},
}
}
是否也可以为 sub_categories 返回 Category_Info ?提前致谢。
【问题讨论】:
-
'categories.sub_categories.info'? -
成功了,谢谢!
标签: laravel laravel-5 eloquent