推进寻呼机(symfony)中的列顺序
Posted
技术标签:
【中文标题】推进寻呼机(symfony)中的列顺序【英文标题】:Column order in propel pager (symfony) 【发布时间】:2011-12-29 15:11:52 【问题描述】:我在 executeIndex 操作中有这段代码:
$pager = new sfPropelPager('News',5);
$c = new Criteria();
$c->clearSelectColumns();
$c->addSelectColumn(NewsPeer::ID);
$c->addSelectColumn(NewsPeer::TYTUL);
$c->addSelectColumn(NewsPeer::SLUG);
$c->addSelectColumn(NewsPeer::TEKST);
$c->addSelectColumn(NewsPeer::UTW);
$c->addSelectColumn(NewsPeer::WYSWIETLENIA);
$c->addDescendingOrderByColumn(NewsPeer::UTW);
$pager->setCriteria($c);
$pager->setPage($this->getRequestParameter("p", 1));
$pager->init();
$this->pager=$pager;
如您所见,我从 9 列中选择了 6 列。
当我想在 indexSuccess 中打印 UTW 列时,它什么也不打印。当我这样做时:print_r($news),我得到了这个:
[id:protected] => 64
[tytul:protected] => Limit
[slug:protected] => limit
[tekst:protected] => text.....
[pelnytekst:protected] => 2011-12-22 08:54:07
[stan:protected] => 42
[utw:protected] =>
[zmi:protected] =>
[wyswietlenia:protected] =>
它应该是:
[id:protected] => 64
[tytul:protected] => Limit
[slug:protected] => limit
[tekst:protected] => text.....
[pelnytekst:protected] =>
[stan:protected] =>
[utw:protected] => 2011-12-22 08:54:07
[zmi:protected] =>
[wyswietlenia:protected] => 42
所以,没关系,当我选择与表中顺序相同的列时,但当我跳过一个时,值会变得混乱。如何解决这个问题?
【问题讨论】:
能否在模板中添加打印UTW的代码? 【参考方案1】:您需要将 PeerMethod 设置为“doSelectStmt”。
$pager->setCriteria($c);
$pager->setPeerMethod('doSelectStmt'); // add this
$pager->setPage($this->getRequestParameter("p", 1));
$pager->init();
$this->pager=$pager;
【讨论】:
以上是关于推进寻呼机(symfony)中的列顺序的主要内容,如果未能解决你的问题,请参考以下文章
带有多个表的 Symfony sfDoctrinePager
使用 Symfony 路由从 .htaccess 重写 URL