【问题标题】:Using condition or in cdbcriteria使用条件或在 cdbcriteria 中
【发布时间】:2014-07-18 04:37:40
【问题描述】:

目前我的代码是这样的

    $criteria = new CDbCriteria();
    $criteria->compare('visible', 1);
    $criteria->compare('branch_id', $this->id);

我想做这样的事情

`branch_id`='$this->id' OR `branch_id` is NULL

compare函数怎么做?

【问题讨论】:

    标签: php yii


    【解决方案1】:

    Yii condition <IS NULL>

    所以也许你想做

    $idCrit = new CDbCriteria();
    $idCrit->compare('branch_id', $this->id);
    $idCrit->addCondition('branch_id is NULL', 'OR');
    
    $criteria->mergeWith($idCrit);
    

    $criteria 存放所有其他东西在哪里?

    进一步阅读;

    (具体看$operator 参数。)

    【讨论】:

      【解决方案2】:

      这对我有用:

      $criteria->compare('field', array(NULL));
      

      【讨论】:

        【解决方案3】:

        使用这个:
        $criteria->compare('branch_id', array($this->id, null));

        正如您在代码中看到的那样:
        https://github.com/yiisoft/yii/blob/1.1.14/framework/db/schema/CDbCriteria.php#L414

        "如果值是一个数组,则比较是通过精确匹配数组中的任何值来完成的。"

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-14
          • 2015-08-21
          • 1970-01-01
          相关资源
          最近更新 更多