gpt4 book ai didi

php - 渴望加载嵌套多重关系

转载 作者:行者123 更新时间:2023-11-29 18:27:43 24 4
gpt4 key购买 nike

我有一些 table :

  • 记录
  • 记录关系
  • 身份信息
  • 库存
  • 价格

Record 具有与IdentificationInventoryPrice 相关的多态关系。 库存Metric 存在关系,价格货币 存在关系。所以...

  • Record hasMany RecordRelations 通过 relations()
  • RecordRelation morphTo IdentificationInventoryPrice 通过 relation ()
  • 库存 belongsTo Metricmetric()
  • 价格 belongsTo 货币通过currency()

如果我延迟加载一切正常,但我需要急切加载所有关系(我将它们显示在数据表中);经过多次尝试后,我能够加载最深层的关系:

$builder->with([
'relations' => function($query) {

$query->with('relation.metric')->where('relation_type', '=', 'App\\Inventory');

}
]);

但是,如果我添加其他关系,所有关系都会为空......

$builder->with([
'relations' => function($query) {

$query->with('relation');
$query->with('relation.metric')->where('relation_type', '=', 'App\\Inventory');
$query->with('relation.currency')->where('relation_type', '=', 'App\\Price');

}
]);

由于某种原因,我似乎不能多次使用“withWhere”。有办法做到吗?

最佳答案

定义你的关系如下

$builder->with([
'relations' => function($query) {
$query->addSelect('column_names');
},
'relation.metric' => function($query){
$query->addSelect('column_names')->where('_condition goes here');
},
'relation.currency' => function($query){
$query->addSelect('column_names')->where('_condition goes here');
}

]);

将 columns_names 替换为您要检索的列的名称。和 _condition 为您要应用的条件。

关于php - 渴望加载嵌套多重关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46017106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com