按使用问题推进不区分大小写的顺序
我已经四处寻找了好几天,找不到任何有用的东西。
我的问题是;我无法设置不区分大小写的标准 ORDER (A ab BD d)。因为当我尝试从数据库中获取记录时,由于 ascii 问题(ABC abc ),它的排序不正确,
我想像这样设置我的 ORDER 标准;
Criterias::setCriterias(Array('ORDER' => 'UPPER(name)'));
但 propel 不允许我在设置条件时使用 UPPER。
所以我必须这样设置;
Criterias::setCriterias(Array('ORDER' => 'name'));
我发现了一些可能有帮助的东西,这个函数正在做我想要的事情;
setIgnoreCase(true)
这个函数带来了一个新问题。如果我在没有 WHERE 的情况下设置 ORDER 标准,它将发挥作用。但如果我将“WHERE”和“ORDER”设置在一起,propel 会给我错误。
致命错误:未捕获的异常 “PropelException”,消息“无法” 执行 SELECT 语句 [] [包装:无法获取 TableMap 未定义的表:]' 中 /usr/local/share/pear/propel/query/ModelCriteria.php:1153 堆栈跟踪:#0 /usr/local/share/pear/propel/query/ModelCriteria.php(1019): ModelCriteria->getSelectStatement(NULL)
谢谢。
I have been looking around for days and couldnt find anything helpfull.
my problem is; I couldn't set criteria case-insensitive ORDER (A a b B D d). Because when I try to fetch my records from DB, its not ordering properly since ascii problems (A B C a b c )
I want to set my ORDER criteria like this;
Criterias::setCriterias(Array('ORDER' => 'UPPER(name)'));
But propel doesnt let me to use UPPER in setting criterias.
So I have to set it like this;
Criterias::setCriterias(Array('ORDER' => 'name'));
I found something that may help, this function is doing what i want;
setIgnoreCase(true)
A new problem is coming with this function. If I set ORDER criteria without WHERE, it will working like a charm. But if I set 'WHERE' and 'ORDER' together, propel will giving me error.
Fatal error: Uncaught exception
'PropelException' with message 'Unable
to execute SELECT statement []
[wrapped: Cannot fetch TableMap for
undefined table: ]' in
/usr/local/share/pear/propel/query/ModelCriteria.php:1153
Stack trace: #0
/usr/local/share/pear/propel/query/ModelCriteria.php(1019):
ModelCriteria->getSelectStatement(NULL)
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这已在 Propel 1.6.x 中修复。我进行了一些测试来证明这一点: https://github.com/propelorm/Propel/commit/ 3fc74ccffb05931ec3187b0dcff77dce732ef325
This is fixed in Propel 1.6.x. I pushed a few tests to prove that: https://github.com/propelorm/Propel/commit/3fc74ccffb05931ec3187b0dcff77dce732ef325