在Laravel模型中建立新的自定义关联方法

时间:2018-12-10 16:39:27

标签: php laravel laravel-5 laravel-5.7

当我访问某人的个人资料时,我正在将其用于我的api:

return response()->
json(
    User::load(["posts.comments"])
    ->where('username', request('username'))
    ->firstOrFail()
);

现在,当我想在关系上使用分页时,我会这样做:

$user->posts()->paginate(10);

但是我需要联系,所以我发现:

$user->setRelation('posts', $user->posts()->paginate(10));

现在我想知道是否有一种方法可以在模型内部创建自定义关系方法,所以当我使用load(['posts.comments'])时,它会返回该自定义关系?

1 个答案:

答案 0 :(得分:0)

一种方法是这样做:

return response()->
json(
    User::with(['posts' => function($q) {
        $q->paginate(5);
    }, 'posts.comments' => function($q) {
        $q->paginate(5, ['*'], 'commentsPage', request('commentsPage'));
    }])
    ->where('username', request('username'))
    ->firstOrFail()
);

尽管我不确定如何通过$q->nextPageUrl()