从 laravel 中的多个相关 table 中检索数据

Retrieve data from multiple related table in laravel

我有3个相关模型。 1.User

public function book(){
        return $this->hasMany('App\Book');
    }

2.Book

public function photo(){
        return $this->hasMany('App\Books_photo');
    }

    public function user(){
        return $this->belongsTo('App\User');
    }

3.Books_photo

public function book(){
        return $this->belongsTo('App\Book');
    }

关系是

User hasmany Book

Book hasmany Books_photo

所以我想获取带有特定用户照片的所有书籍。

我可以用这种方法得到 user.I 的所有书籍

$User = User::with('book')->find(decrypt($request->id));

但是这个returns只有书本和用户table中的数据。怎么才能把照片也抓起来呢

您正在寻找 nested eager loading。你会想要这样做:

$User = User::with('book', 'book.photo')->find(decrypt($request->id));

book.photo 是一个嵌套的预加载,它将告诉 eloquent 从 book 模型中获取 photo 关系。