首页 > 解决方案 > 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

标签: phplaraveleloquent

解决方案


您可以在 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();

推荐阅读