gpt4 book ai didi

php - Symfony 1.4 sfDoctrinePager : How to set custom SQL?

转载 作者:行者123 更新时间:2023-11-28 23:18:49 25 4
gpt4 key购买 nike

有一个用 symfony 1.4 编写的旧项目

还有一些 SQL 是无法使用 Doctrine 创建的。例如,考虑这个测试 SQL:

SELECT id,name FROM users
UNION ALL
SELECT id*10 as id,name FROM users

puvlic function getPager(){
$sql = "SELECT id,name FROM users
UNION ALL
SELECT id*10 as id,name FROM users";

$pager = new sfDoctrinePager('Users', 10);
$pager->setQuery($sql);
$pager->setPage(2);
$pager->init();
return $pager;
}

它给出了以下错误:

Fatal error: __clone method called on non-object in ...

请帮忙解决问题。

最佳答案

使用 stock sfDoctrinePager 类是不可能使用自定义 SQL 字符串的。它只接受 Doctrine_Query 的一个实例(参见 sfDoctrinePlugin sources )。

您应该构造一个完全满足您需要的 Doctring_Query 对象(由于 UNION,这很可能是不可能的)。它需要一个查询对象,因为寻呼机需要在以平台无关的方式执行查询之前修改查询(添加 LIMIT 和 OFFSET)(例如,它在 MySQL 和 MS-SQL 上是不同的)。

如果你真的需要使用自定义 SQL 和 UNION,实现它的唯一方法是实现你的自定义 sfDoctrinePager 实现,它接受 SQL 并假定你的目标数据库平台, 某些 SQL 查询结构等。

关于php - Symfony 1.4 sfDoctrinePager : How to set custom SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42663591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com