rajesh
rajesh

Reputation: 323

yii if condition within query builder

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;
    }
}

this is my model file what i want to achieve is if $condition is truethen the where condition should be avoide and if it is false it should be included

can i achieve it like this

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;   
}
}

Upvotes: 2

Views: 2245

Answers (1)

Alexander Yancharuk
Alexander Yancharuk

Reputation: 14531

Try this:

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;   
}

Upvotes: 2

Related Questions