Yii CDbCriteria中的代码错误在哪里?

哈米德

当我使用此代码时:

$criteria = new CDbCriteria;
$criteria->addColumnCondition(array('paid'=>0, 'confirmed'=>0));
$criteria->addCondition('UNIX_TIMESTAMP() > (date + users.limited_pay_time * 3600)');
$orders = Orders::model()->findAll($criteria);

返回此错误。

CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.limited_pay_time' in 'where clause'. The SQL statement executed was: SELECT * FROM `orders` `t` WHERE (paid=:ycp0 AND confirmed=:ycp1) AND (UNIX_TIMESTAMP() > (date + users.limited_pay_time * 3600)) 
南内

这是发送到服务器的SQL:

SELECT * 
FROM `orders` `t` 
WHERE 
(paid=:ycp0 AND confirmed=:ycp1) 
AND (UNIX_TIMESTAMP() > (date + users.limited_pay_time * 3600)) 

您只能从订单中进行选择,而不能从用户中进行选择,因此您无法使用这些users.*字段,因为它们不会被查询!

您想要的是先连接到users表上,这样您实际上就可以返回该表了。我不是Yii的专家,但是与CDbCriteria您拥有的人加入连接应该不难参见例如:

http://www.yiiframework.com/doc/api/1.1/CDbCriteria#join-detail

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章