首页 > 解决方案 > 如何检索模型及其作为单个数组或对象的关系 | 雄辩,雄辩:关系

问题描述

我有 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",
}

标签: databaselaraveleloquent

解决方案


我永远不会把它扔到同一个数组/对象中,我会首先在转换时这样做。如果你使用默认的 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);
}

推荐阅读