I have three tables
1. users
id
name
email
2. Listings
id
user_id
name
3 ListingImage
id
list_id
image
这里我想要一个查询中的数据。其中所有数据都是基于用户表(id)获取的。 我想要那样的数据
enter code here
Array
(
[user] => Array
(
[id] => 1
[name] =>abc
[email] => abc@gmail.com
[listing]=>
Array
(
[id] => 1
[user_id] => 1
[name] => abc list
[listingimage] =>
[0] => Array
(
[id] => 1
[list_id] => 1
[image] => abc.jpg
)
[1] => Array
(
[id] => 2
[list_id] => 1
[image] => abc.jpg
)
)
)
)
我使用过hasMany但它不会给我准确的结果任何人都可以帮助我
答案 0 :(得分:1)
考虑关系是一对多的,你Listing
表ListingImage
表的Listings
模型类和ListingImage
模型类。
在User
模型中
public function listings()
{
return $this->hasMany(Listing::class);
}
在Listing
模型中
public function images()
{
return $this->hasMany(ListingImage::class, 'list_id', 'id')
}
现在
$user = User::with('listings.images')->findOrFail($id);
会为您提供所需的结果。
您可以在此处找到更多详细信息:https://laravel.com/docs/5.3/eloquent-relationships#one-to-many