Laravel渴望加载与其他桌子上的连接

Saj*_*jad 0 php inner-join eager-loading laravel laravel-5

我可以将此代码更改为has_many或has_one或...的语法来编写漂亮的代码吗?

\App\User::with(['books' => function ($query) {
    $query->join('locations','books.location_id','=','locations.id')
    ->select([
        'books.*',
        'locations.name as l_name'
    ]);
}])->get()
Run Code Online (Sandbox Code Playgroud)

班级用户:

public function books()
{
    return $this->hasMany(Book::class);
}
Run Code Online (Sandbox Code Playgroud)

Oni*_*nix 5

你应该只有一个与Book模型有关系的Locations模型,并像这样调用它:

User::with('books.locations')->get();
Run Code Online (Sandbox Code Playgroud)

这将为用户提供每本书的书籍和位置.