【问题标题】:Laravel eloquent skip methodLaravel 雄辩的跳过方法
【发布时间】:2017-03-07 09:08:28
【问题描述】:


我在使用 laravel eloquent ORM 时遇到了问题。
基本上,我正在获取与用户相关的帖子,以及他的 cmets,但是,我正在尝试集成某种分页(我一次只想获取 5 个帖子)。
在使用 skip 方法时,我总是收到以下 laravel 错误:

方法跳过不存在。

这是我实际使用的代码 sn-p。

$posts = $account->posts->skip($page * 5)->take(5);

谁能给我任何帮助?
帐户模型检索与用户相关的帖子模型(关系),但是,我希望一次只收到 5 个帖子,以便在基于 ajax 的请求中使用它。

【问题讨论】:

  • 我遇到的一种方法是使用 Posts 模型本身,而不使用 Account 实例化模型,但是我试图避免这样做。

标签: php laravel laravel-5.3


【解决方案1】:

旧帖子,但我发现另一个答案是,如果您使用的是 laravel 集合,您可以使用 slice() 而不是 skip() - 您也可以使用顶部的代码

$posts = $account->posts->slice($page * 5)->take(5);

更多信息

Laracasts Slice

【讨论】:

    【解决方案2】:

    您似乎正在尝试在集合上使用 skip()

    试试这个:

    $account->posts()->skip($page * 5)->take(5);
    

    或者:

    Account::with(['posts' => function($q) {
        $q->skip($page * 5)->take(5);
    }])->get();
    

    【讨论】:

      【解决方案3】:

      我正在尝试整合某种分页方式

      为什么在这种情况下你不使用paginate?类似的东西

      $account->posts()->paginate(5);
      

      【讨论】:

      • 我遇到了那个解决方案,但是该平台将是一个 API 系统。
      • 对于我在 laravel 文档中读到的内容,分页使用来自 http 请求的页面查询变量(?page),这在某种程度上不适合我的解决方案(AFAIK)
      猜你喜欢
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2013-08-14
      相关资源
      最近更新 更多