如何获得两个 hasManyThrough 的组合查询
Posted
技术标签:
【中文标题】如何获得两个 hasManyThrough 的组合查询【英文标题】:How can I get the combined query for two hasManyThrough 【发布时间】:2021-04-07 00:11:20 【问题描述】:我在用户表上有两个关系:
public function tokens_records()
return $this->hasManyThrough(Record::class, Token::class);
和
public function websites_records()
return $this->hasManyThrough(Record::class, Website::class);
如何将两个查询合并为一个?
【问题讨论】:
【参考方案1】:如果你想拥有这两种关系的记录,这会起作用:
class Entity extends Model
public function tokens_records()
return $this->hasManyThrough(Record::class, Token::class);
public function websites_records()
return $this->hasManyThrough(Record::class, Website::class);
$records = $entity->tokens_records
->merge($entity->websites_records);
【讨论】:
不幸的是,这会在返回结果之前加载数据。我正在寻找一种返回关系实例的方法以上是关于如何获得两个 hasManyThrough 的组合查询的主要内容,如果未能解决你的问题,请参考以下文章
Laravel:如何平均嵌套 hasMany 关系(hasManyThrough)
如何在php/codeigniter或mysql中获得两个相差20分钟的日期的所有组合
如何通过中间表访问用户数据(hasOneThrough / hasManyThrough)