在laravel

时间:2017-06-11 18:30:10

标签: php eloquent laravel-5.3

我有3个相关的模型。 1.用户

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');
    }

关系是

  

用户hasmany Book

  

Book hasmany Books_photo

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

我可以获得用户的所有书籍。我正在使用这种方法

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

但是这只返回book和user表中的数据。我怎样才能获取照片。

1 个答案:

答案 0 :(得分:1)

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

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

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