如何从laravel中的多个表中获取数据

时间:2016-11-07 11:42:08

标签: php laravel-5.2

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但它不会给我准确的结果任何人都可以帮助我

1 个答案:

答案 0 :(得分:1)

考虑关系是一对多的,你ListingListingImage表的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