Eager loading with route model binding

2019-04-30 04:56发布

I have a controller function like this

public function show(NovelRequest $request, Novel $novel)
{
    // load the chapters
    $novel->chapters;

    // return the detail view of a novel
    return view('novels.show', compact('novel'));
}

I receive a novel object because i m using route model binding. However, I'd like to load more than the chapters. Since it would cause many request if i now do something like

$novel->chapters;
$novel->bookmarks;
...

I wondered if theres a way to load "multiple" relations when i already have the novel object. Usually i would to something like

Novel::with('chapters', 'bookmarks')-> ...

However, I already have the novel object so i would like to not look it up a second time.

1条回答
对你真心纯属浪费
2楼-- · 2019-04-30 05:34

There is “Lazy Eager Loading“. The syntax is $novel->load('chapters', 'bookmarks');

查看更多
登录 后发表回答