php - 在 Magento 中使用函数就是向带有函数的过滤器添加反引号。有没有什么好办法让MySQL的这些功能发挥作用呢?

标签 php mysql magento

我正在使用 Magento 1,并且我尝试使用以下代码按 week(created_time) 添加过滤器:

$week = 37;
$weekCollection = Mage::getModel('module/modle_name')->getCollection()
                        ->addFieldToFilter("week(created_time)", $week);

不幸的是,整个函数周围添加了反引号,所以我收到错误

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'week(created_time)' in 'where clause', query was: SELECT `main_table`.*, SUM(commission) AS `commission_total` FROM `affiliateplus_transaction` AS `main_table` WHERE (`account_id` = '1546') AND (`week(created_time)` = '37') GROUP BY week(created_time, 1)

Magento 1 中是否有合法的方法将 MySQL 函数应用于列名?

最佳答案

您必须使用 Zend_Db_Expr。 如果magento遇到Zend_Db_Expr,它只会将其解析为字符串,并且不会以任何方式修改它。

所以它看起来像这样:

$week = 37;
$weekCollection = Mage::getModel('module/modle_name')->getCollection()
                    ->addFieldToFilter(new Zend_Db_Expr("week(created_time)"), $week);

关于php - 在 Magento 中使用函数就是向带有函数的过滤器添加反引号。有没有什么好办法让MySQL的这些功能发挥作用呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39496209/

相关文章:

php - 免费的 RTE [富文本编辑器] 帮助需要集成它

java - 如何用 Spring + Hibernate + MySQL 实现搜索过滤器?

mysql - 使用 IN 根据多个元键/值对获取 WP 帖子

apache - 访问 Magento 安装时出现 302 响应

php - JQuery 自动完成,用 pHp json 中的数据填充

php - 如何修复未捕获的异常 'ReflectionException' 和消息 'Class log does not exist' ?

php - 图片未在 Laravel 4 Framework 中显示

Magento 1.7.0.2 fatal error : Call to a member function getAttributeCode() on a non-object in

php - Magento - 自定义支付模块

php - 生成按天和部门 mysql 分组的报告