当我使用此代码时:
$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] 删除。
我来说两句