【问题标题】:Laravel - How to pluck objects in nested relationship?Laravel - 如何在嵌套关系中提取对象?
【发布时间】:2021-01-24 13:00:09
【问题描述】:

表格

persons:
id = 1
name = 'john'

class_of_pesson:
id = 1,
desc = 'employee'

classes_of_person:
persons_id = 1
class_of_pesson_id = 1

Persons::with('classes_of_person.class_of_pesson')->paginate(10);

数据:

[
{ id: 1, name: 'jonh', classes_of_person: [ {person_id: 1, class_id: 1, class_of_pesson: { id: 1, desc: 'employee' } } ] }
]

想要:

[
{ id: 1, name: 'jonh', classes_of_person: [{id: 1, desc: 'employee'}] }
]

我尝试了 pluck 方法,但我很困惑。谁能帮我解决这个问题?

编辑:

模型关系

Persons
public function classes_of_person() {
    return $this->hasMany(classes_of_person::class, 'person_id', 'id');
}

ClassesOfPersons
public function classe_of_person() {
    return $this->hasOne(classe_of_pesson::class, 'id', 'class_of_person_id')
}

在人物模型中使用 belongsToMany 解决。谢谢大家

Ex: function classes_of_person () {
   return $this->belongsToMany(classe_of_pesson::class);
}

【问题讨论】:

标签: laravel eloquent


【解决方案1】:

您需要在模型中定义 HasManyThrough 关系,然后在查询中使用“with”函数。

查看参考:https://laravel.com/docs/8.x/eloquent-relationships#has-many-through

【讨论】:

猜你喜欢
  • 2021-09-07
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 2021-05-29
  • 2014-10-27
  • 2020-09-13
  • 2020-01-08
  • 2021-03-04
相关资源
最近更新 更多