【发布时间】:2013-02-08 00:33:19
【问题描述】:
我不知道我想做的事是否可能,我有两个模型我想使用另一个模型的条件从一个模型获取数据。
$criteria1=new CDbCriteria;
$paramIds = $s['param_id'];
$stress = model1::model()->find($criteria1);
$mycondition= ($stress->stress_value);
echo $mycondition ; // I get this value and I want to use it as
// condition for the next cdbcreteria
$criteria2=new CDbCriteria;
// condition
$criteria2->addcondition(array('pressure_value' > $mycondition));
// I can't perform this condition
$criteria2->order = "pressure_value desc";
$pressure = model2::model()->find($criteria2);
有什么想法吗?我的代码是错误的,或者我想做的事情是不可能的?
非常感谢
【问题讨论】:
-
如果
$mycondition只是一个数字,试试$criteria2->addcondition('pressure_value >'. $mycondition) -
感谢您的评论,$mycondition 是一个时间,我想比较给定时间 2 的压力值
-
然后这样做:
$criteria2->addCondition('pressure_value > :value');和$criteria2->params(array(':value' => $mycondition))。这样 Yii 将正确地转义该值。 -
再次感谢,我收到错误 CDbCriteria 并且它的行为没有名为“params”的方法或闭包!但是在 yii 文档中有这个方法yiiframework.com/doc/api/1.1/CDbCriteria#params-detail
-
哦,我猜那不是函数。
$criteria2->params = array(':value' => $mycondition)应该可以工作。