【问题标题】:Chain an array of model relationships to query builder将一系列模型关系链接到查询构建器
【发布时间】:2021-06-05 04:19:55
【问题描述】:

如何将关系数组链接到 Laravel 中的查询构建器实例?

我目前有一组从系统的另一部分传入的关系。像这样的:

$relations = [
   "company",
   "staff",
   "category",
]

然后我得到了一个模型的实例,并且想要循环并添加每个关系,然后获得模型的某个属性。关系数组的长度是动态的。

$instance->company->staff->category->name;

我怎样才能实现这样的目标?

编辑:要添加关于我为什么要这样做的上下文,我有一个使用反射来检索要实例化的类的类。我有一个传递给它的属性,它生成类似于organization.company.staff.category.name 的东西,其中第一项organization 是模型,它是用反射实例化的,最后一项name 是应该检索的属性。

第一个和最后一个之间的不同项目是检索属性的关系。我们正在从一个报告平台的 JSON 值中检索它,所以我们想做这样的事情,我们能够重用相同的代码来检索系统范围内的数据。 organization.company.staff.category.name 的内容显然会根据 JSON 值发生变化。

【问题讨论】:

标签: php laravel eloquent eloquent-relationship


【解决方案1】:

你可以做一个foreach,看我的例子

示例

$relations = [
   "company",
   "staff",
   "category",
];

$producto = Producto::find(1);

foreach($relations as $relation){ $producto = $producto->$relation; )}

return $producto->name;

【讨论】:

  • 我认为您对问题本身缺乏了解。对不起。
猜你喜欢
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 2014-01-18
  • 2022-01-26
  • 1970-01-01
  • 2021-06-01
  • 1970-01-01
相关资源
最近更新 更多