1

目前我的代码看起来像这样

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

我想要的是做这样的事情

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

如何用compare功能做到这一点?

4

3 回答 3

4

Yii 条件 <IS NULL>

所以也许你想做

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

$criteria->mergeWith($idCrit);

所有其他的东西在哪里$criteria

一些进一步的阅读;

(具体看$operator论证。)

于 2013-04-24T17:30:58.737 回答
0

这对我有用:

$criteria->compare('field', array(NULL));
于 2014-02-06T20:55:48.670 回答
0

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

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

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

于 2014-02-07T03:19:28.290 回答