【问题标题】:CDbCriteria condition from another CDbCriteria来自另一个 CDbCriteria 的 CDbCriteria 条件
【发布时间】: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) 应该可以工作。

标签: php yii


【解决方案1】:

感谢@Örs

您的解决方案对我有用,在条件之后在 cdbcreteria 中进行比较语句

$criteria2->params = array(':value' => $mycondition)

【讨论】:

    猜你喜欢
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多