Propel Criteria :: setLimit(),如LIMIT 0,6

Kap*_*rma 3 mysql propel symfony1 symfony-1.4

在我使用Symfony 1.4/Propel 1.4的查询中,出于分页的目的,我需要设置限制

Page1: LIMIT 0,6
Page2: LIMIT 6,6
Page3: LIMIT 12,6
.... & so on
Run Code Online (Sandbox Code Playgroud)

我试试

$c->setLimit(6);
Run Code Online (Sandbox Code Playgroud)

哪个正在产生

LIMIT 6
Run Code Online (Sandbox Code Playgroud)

我没有找到带有两个参数或类似函数的setLimit方法来设置起始限制.这是非常常见的操作,我肯定必须在Propel中可用,但到目前为止我无法弄明白.

有人可以建议如何设置所需的限制(LIMIT 0,6)

j0k*_*j0k 10

你应该使用limit()offset(),在这里描述.

对于

LIMIT 12,6
Run Code Online (Sandbox Code Playgroud)

使用(如果您使用的是1.6 ModelCriteria)

$c->limit(6);
$c->offset(12);
Run Code Online (Sandbox Code Playgroud)

如果您使用旧标准:

$c->setLimit(12);
$c->setOffset(12);
Run Code Online (Sandbox Code Playgroud)

顺便问一下,为什么要建立自己的寻呼机?Symfony提供了一个sfPager(通用)以及一个非常好处理的sfPropelPager(即使你使用自定义标准,你也可以使用它来定义它setCriteria()).