请问三个表的查询如何写
数据表
表1:users
id | name | sex |
---|------|-----|
1 | aaa | 0 |
2 | bbb | 0 |
3 | ccc | 0 |
表2:topics
id | user_id | title |
---|---------|--------|
1 | 2 | title1 |
2 | 2 | title2 |
3 | 3 | title3 |
表3:likes
id | user_id | topic_id |
---|---------|----------|
1 | 2 | 2 |
2 | 2 | 3 |
3 | 3 | 3 |
关联关系
User
public function topics()
{
return $this->hasMany(Topic::class);
}
public function likes()
{
return $this->hasMany(Like::class);
}
Topic
public function user()
{
return $this->belongsTo(User::class);
}
public function likes()
{
return $this->hasMany(Like::class);
}
Like
public function user()
{
return $this->belongsTo(User::class);
}
public function topic()
{
return $this->belongsTo(Topic::class);
}
现在我用下面的方式查询Collection::with(['topic'])
就会得到一个很不方便的结果:
data:
--0:
----id:
----topic:
--------id:
--------title:
--1:
----id:
----topic:
--------id:
--------title:
要怎么做才能把topic的内容往上提一级呢?也就是说不要输出collctions
的东西,比如:
data:
--0:
----id:
----title:
参考我以前的回答 问答:with 关联查询出来的数据怎么合并成一个喃?
不用关联自己拼,方便多了