php - Laravel 更改 eloquent 级联序列
问题描述
我有一个$persons
包含一系列$person
具有关系的雄辩对象模型的集合。人有许多帐户,帐户有一个 en。
例如,如果要访问 en 的 e1 属性,方式是:$person->accounts[0]->en
我怎样才能打开$person
级联序列:
person=>{
p1,
p2,
accounts{
a1,
a2,
en{
e1,
e2
}
}
}
变成类似的东西:
en{
e1,
e2,
accounts{
a1,
a2
},
person{
p1,
p2
}
}
改变后我想要这样的东西$en->accounts->person->p1
解决方案
您可以在 En 模型中创建一个关系,指定与 Account 模型的关系。
public function account(){
return $this->belongsTo(Account::class);
}
在 Account 模型中,创建与 Person 模型的关系。
public function person(){
return $this->belongsTo(Person::class);
}
然后您将能够按照您的要求检索数据
//en should have account and account should be associated with person
$en->accounts->person->get();
推荐阅读
- flask - 安装后无法导入flask-wtf
- android - 如何在 Google Play 商店中搜索和查找非英语语言的应用程序?
- python - 如何在没有 tf-idf 的情况下创建组合?
- javascript - 对象是否有类似“.map”的函数?创建具有相同键的新对象
- react-native - 不支持的操作方法签名。必须返回 MPRemoteCommandHandlerStatus
- arduino - WeMos D1 Mini esptool.FatalError: Timed out waiting for packet header
- python-3.x - 在 GeoDataFrame.plot() 中正确重用 Axes
- amazon-redshift - 引用的 Redshift 上传错误:缺少换行符:意外字符 0x22
- android - 当我从我的 Android 设备中清除数据时,它会清除在我的 DB 助手的 onUpgrade 方法中创建的表
- android - 在屏幕底部显示评论输入和按钮 onClick