yii if 查询生成器中的条件

标签 yii

class Retailjob extends CFormModel {

    public function getReatilProducts() {

        $condition=false;
        $user = Yii::app()->db->createCommand()
            ->select('tbl_retailjob.retailjobmaster_id, tbl_retailjob.joborderflag, tbl_retailjoborder.retailjob_id, tbl_retailjoborder.retailjobsub_id, tbl_retailjoborder.filename,tbl_retailpostpressjoborder.retailpostpressjo_id,tbl_retailpostpressjoborder.retailjobsub_id,tbl_retailpostpressjoborder.retailpostpresssub_id')
            ->from('tbl_retailjob')
            ->join('tbl_retailjoborder', 'tbl_retailjob.retailjobmaster_id=tbl_retailjoborder.retailjobmaster_id')
            ->join('tbl_retailpostpressjoborder', 'tbl_retailjob.retailjobmaster_id=tbl_retailpostpressjoborder.retailjobmaster_id')           
            ->where('tbl_retailjob.retailjobmaster_id=:id', array(':id' => 7))
            ->queryAll();
        return $user;
    }
}

这是我的模型文件 我想要实现的是,如果 $condition 为 true,则应避免 where 条件,如果为 false,则应包含该条件

我可以这样实现吗

public function getReatilProducts() {

    $condition=true;
    $user = Yii::app()->db->createCommand()
        ->select('tbl_retailjob.retailjobmaster_id, tbl_retailjob.joborderflag, tbl_retailjoborder.retailjob_id, tbl_retailjoborder.retailjobsub_id, tbl_retailjoborder.filename,tbl_retailpostpressjoborder.retailpostpressjo_id,tbl_retailpostpressjoborder.retailjobsub_id,tbl_retailpostpressjoborder.retailpostpresssub_id')
        ->from('tbl_retailjob')
        ->join('tbl_retailjoborder', 'tbl_retailjob.retailjobmaster_id=tbl_retailjoborder.retailjobmaster_id')
        ->join('tbl_retailpostpressjoborder', 'tbl_retailjob.retailjobmaster_id=tbl_retailpostpressjoborder.retailjobmaster_id')
    if ($condition !=true) {
        ->where('tbl_retailjob.retailjobmaster_id=:id', array(':id' => 7))
    }
    ->queryAll();
    return $user;   
}
}

最佳答案

试试这个:

public function getReatilProducts() {    
    $condition=true;
    $command = Yii::app()->db->createCommand()
        ->select('tbl_retailjob.retailjobmaster_id, tbl_retailjob.joborderflag, tbl_retailjoborder.retailjob_id, tbl_retailjoborder.retailjobsub_id, tbl_retailjoborder.filename,tbl_retailpostpressjoborder.retailpostpressjo_id,tbl_retailpostpressjoborder.retailjobsub_id,tbl_retailpostpressjoborder.retailpostpresssub_id')
        ->from('tbl_retailjob')
        ->join('tbl_retailjoborder', 'tbl_retailjob.retailjobmaster_id=tbl_retailjoborder.retailjobmaster_id')
        ->join('tbl_retailpostpressjoborder', 'tbl_retailjob.retailjobmaster_id=tbl_retailpostpressjoborder.retailjobmaster_id');
    if ($condition !=true) {
        $command->where('tbl_retailjob.retailjobmaster_id=:id', array(':id' => 7));
    }
    $user = $command->queryAll();
    return $user;   
}

关于yii if 查询生成器中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18257415/

相关文章:

php - Yii2:无法通过 + 1 更新列值

php - 图片上传裁剪调整大小保存到文件夹

php - 如何设计带有访客处理功能的安全购物车?

php - Yii - 从表单中删除 id 字段

php - 如何使用yii迁移将a列数据复制到b列

php - 在 MySQL 中实现 SQL INTERSECT 时嵌套级别太高

php - Yii Create Command 无法从 select 获取硬编码值

php - Yii 2 可选参数

database-design - 如何在 YII 框架中添加复合主键

Yii:没有数据库服务器的单元测试模型