【问题标题】:Is there anything like top 100 or first 100 records in cakephp find?cakephp find 中是否有前 100 或前 100 条记录?
【发布时间】:2012-08-21 17:40:43
【问题描述】:

这是我用来获取记录的代码。我需要知道是否有任何类似查找前 100 条或前 100 条记录然后对其进行分页的操作。数据库将包含 1000 条记录;)

$options = array(
        'limit' => 10,
        'recursive' => 0
        );
$this->paginate = $options;
$this->set('movies',$this->paginate());

一切正常,但我只需要前 100 条记录,只需要为那 100 条记录分页。我找了很多地方,都找不到。希望有人能帮助我:)

【问题讨论】:

    标签: pagination find cakephp-2.0 limit


    【解决方案1】:

    尝试将limitorder 选项组合在一起以获得结果。

    array(
        'order' => array('created' => 'desc')
        'limit' => 100,
    )
    

    这里的“created”是时间戳表列。如果说“top”,您的意思是最新记录,那么您应该使用“desc”,否则使用“asc”。

    更新

    我之前的示例是用于find 函数,而不是用于分页。似乎您正在寻找如何将分页用于记录子集。目前没有内置选项。你应该看看其他answer 看看解决方案是否适合你。

    【讨论】:

    • 实际上,当我将限制设置为 100 时,每页的分页数为 100。我正在使用其他字段的顺序。
    • @praveenkumar 我被误解了你原来的想法。请参阅我的更新答案。
    • 谢谢 :) 它有效,但它有一些错误。就像我只有 20 条记录,但我提到了 100 条作为总限制。即使只有 20 条记录,也会为 100 条记录生成分页。有什么帮助吗?
    • @praveenkumar 如果您不确定数据库记录数,您可以使用 find('count') 进行额外检查,如果低于 100,则将该值设置为 totallimit。这将是额外的数据库检查(性价比),但它是您正在处理的解决方法的“价格”。
    【解决方案2】:

    为前 100 名创建自定义查找方法,您可以将其与分页一起使用:

    示例: http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-custom-find

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2010-11-14
      • 2021-05-22
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多