【发布时间】:2023-03-20 06:17:01
【问题描述】:
我对 Laravel 还是很陌生,我正在尝试弄清楚如何正确使用 Eloquent,到目前为止效果很好,但我被困在我想做的事情中:
如果你计算迁移,我在数据库中有 3 个表 4:食物、食物组和部分,食物组和部分具有相同的结构,即 id 作为主键和名称列
食物有
| id(primary) | name | food_group_id (foreign key) | portion_id (foreign key |
一切都很好,因为我的路线中有一个格式很好的 JSON
Route::get('/read', function() {
$categories = App\FoodGroup::with('Foods')->get();
return Response::json(array('data' => $categories));
});
data: [
{
id: 1,
name: "Frutas",
foods: [
{
id: 18,
name: "Acelga",
cant_portion: 2
},
{
id: 19,
name: "Espinaca",
cant_portion: 2
},
]
}
]
如果我用 App\Portion 更改 App\FoodGroup,它会给我相同的数组,但现在作为外键部分排序
我需要先用 FoodGRoup 订购,然后在 FFo_group 的每个项目中订购,现在按第二个外键(即部分)订购,这样我就可以拥有这样的东西
data: [
{
id: 1,
name: "Frutas",
portions:[
id: 18,
name: "Gr",
foods: [
{
id: 18,
name: "Acelga",
cant_portion: 2
},
{
id: 19,
name: "Espinaca",
cant_portion: 2
},
]
]
}
]
【问题讨论】:
-
$categories = App\FoodGroup::with('Foods','Portions')->get();这个呢??
-
@Drudgethat 不起作用,因为部分不在 FoodGroup 的模型中,我可以做 App\FoodGroup::with('Foods.portion')->get();它在每个项目上为我提供了表格部分的值,但我只想要一个值部分的数组,并在该数组中对它们进行排序,我不知道我是否足够清楚
-
你能出示一下 food_group 和 part 的表格吗
-
嗨@oseintow i.imgur.com/giFr0TP.png