我需要按 2 列对查询进行排序。这可以使用推进吗?
我试过了:
$c->addAscendingOrderByColumn(self::COL1);
$c->addAscendingOrderByColumn(self::COL2);
但是对 addAscendingOrderByColumn 的第二次调用覆盖了第一个调用。
问候,
拉杜。
最佳答案
不幸的是,如果您使用的是 Propel 1.4(Symfony 1.4),似乎您将不得不在那里切换到原始 SQL...
在(旧)Symfony 论坛中没有答案:http://oldforum.symfony-project.org/index.php/m/90447/
但是,从 Propel 1.5 开始,它应该使用新的语法(Doctrine 风格)。 Propel 文档中没有详细说明,但是当我对此进行测试时,它可以工作(提供 ORDER BY author.name ASC, author.id DESC
)。
$authors = AuthorQuery::create()
->orderByName()
->orderById('desc')
->find();
也许可以考虑升级到 Propel 1.5。
关于symfony-1.4 - 如何使用推进器按多列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584484/