我有一个对象有许多项目的情况,它有许多项目。例如,房子
有许多房间
,每个房间
有许多家具
。
过去,很简单,就是说:
$house->rooms()->get()->all();
我会得到所有对象及其在数组中的嵌套对象(请原谅我的 JSON 语法中的任何错误):
{"house_name":"Max's House", "rooms":["den":[{"furniture_name":"couch"}],"kitchen":[{"furniture_name":"bed"}]]}, {.......}
但在另一种情况下,当我使用相同风格的代码时,它会得到 house
和 rooms
,但不会得到相关的 furnitures
与 room
对象。这可能是什么原因?就类中的关系声明而言,我的代码在这两种情况下似乎是相同的:
public function rooms() {
return $this->hasMany('HouseRoom', 'house_id');
}
我知道这没什么好继续的,但我希望找到以前遇到过此类问题的人。
我的猜测是:
- 我不知道 squat 以及如何返回对象及其所有属性
- 存在外键问题
最佳答案
原来是关于如何获取数据的经典语法错误。为了获得一个对象及其所有子对象,假设关系已正确设置,您需要使用:
$house->rooms;
关于php - Eloquent hasMany 关系 get() 不适用于嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997272/