【问题标题】:Get paginated many to many records in laravel在 laravel 中对多对多记录进行分页
【发布时间】:2021-07-21 04:40:12
【问题描述】:

对于我的应用,我制作它是为了让用户可以喜欢场地,场地和用户之间的这种关系是多对多的,问题是我不知道如何让 favorite_venues 分页。

现在我正在做的是让用户使用 favorite_venues 但这对我来说似乎不正确,有没有办法让最喜欢的场地直接分页而不必让用户。

我目前在做什么:

public function getFavorites($request)
    {
        $user = User::with(['favoritevenues','favoritevenues.category'])->findOrFail(1);

        return $user;;
    }

我这样设置关系:

用户模型

public function favoritevenues()
    {
        return $this->belongsToMany('App\Models\Venue', 'favorite_venues', 'user_id', 'venue_id')->withTimeStamps();
    }

场地模型

public function favorites()
    {
        return $this->belongsToMany('App\Models\User', 'favorites', 'venue_id', 'user_id')->withTimeStamps();
    }

提前致谢

【问题讨论】:

  • 你能解释一下当前代码有什么问题吗?您如何使用获得的数据?

标签: laravel


【解决方案1】:

你可以这样做:

Venue::whereHas('favorites', function ($q) {
    return $q->where('id', 1);
})->paginate(5);

这将获取id为1的用户最喜欢的所有场所并对其进行分页

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-02
    • 2020-06-28
    • 1970-01-01
    • 2014-04-05
    • 2020-03-04
    • 2021-08-21
    • 1970-01-01
    • 2016-07-19
    相关资源
    最近更新 更多