database - 如何检索模型及其作为单个数组或对象的关系 | 雄辩,雄辩:关系
问题描述
我有 3 个具有一对一关系的表。phone 表与 Model 表是一对一的关系,而 Model 表与 Manufacturer 表是一对一的关系。
phone_table
id
imei
image
model_id
model_table
id
name
image
manufracturer_id
manufracturer_table
id
name
logo
如何得到这样的结果:-
App\Phone{
imei : "356554512522148",
model : "Galaxy S-10",
manufracturer : "Samsung",
}
解决方案
我永远不会把它扔到同一个数组/对象中,我会首先在转换时这样做。如果你使用默认的 Laravel 转换,你可以使用 getter。关于如何将这些字段访问到相同上下文的简单示例是。
$phone = Phone::with('model.manufactor')->find(1);
使用secures,查询是访问它的最佳选择。如何将数据放入同一层。
[
'imei' => $phone->imei,
'model' => $phone->model->name,
'manufactor' => $phone->model->manufactor->name,
]
为此,您还需要模型中的关系。
Phone.php
public function model()
{
return $this->belongsTo(Model::class);
}
Model.php
public function manufactor()
{
return $this->belongsTo(Manufactor::class);
}
推荐阅读
- python - Python。积分问题。TypeError:只有大小为 1 的数组可以转换为 Python 标量
- dart - 如何在flutter中应用滑动以关闭友好聊天应用程序中的功能
- asp.net-mvc - 如何在 Kendo UI MVC 中与其父级一起保存子级列表?
- python - 使用 Pygame 从 Base64 字符串加载图像
- node.js - loopback - “next()”没有在“beforeRemote”中的正确时间触发?
- unity3d - Unity Networkserver.SpawnwithclientAuthroity 在主机上不起作用
- c# - 如果有任何使用搜索,我如何用包括孩子在内的预制件替换选定的对象?
- .net - 将现有的 ASP.Net 用户身份应用程序转换为使用 ReactJs
- c# - 如何在c#中的datagridviewcell中只接受一个小数点
- javascript - 在使用谷歌地图进行拖动和自动完成后,我将如何获得国家名称?