Критерии Yii CgridView отображаются только в том случае, если группа имеет одинаковый статус - PullRequest
0 голосов
/ 01 декабря 2018

Как я могу отобразить в Yii 1.1 cgridview, если записи не содержат другого статуса.Например, если записи содержат статус A3 и A4, то не отображаются, если содержат A4, отображаются

public function searchList($pageSize=20)
{
    $criteria=new CDbCriteria;

    $criteria->addCondition('status="A4"');
    $criteria->group="name, month, year";
    $criteria->having='status="A4"';

    $sort = new CSort();
    $sort->defaultOrder = 'timeCheckIn ASC';

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
        'sort'=>$sort,
        'pagination'=>array(
            'pageSize'=> $pageSize, 
        )
    ));
}

ОБНОВЛЕНИЕ: я добавил несколько трюков с помощью

    $sizeof = Yii::app()->db->createCommand()
            ->select('COUNT(status) as totalStatus')
            ->from('tbl_kerja_lebih_masa')
            ->group('id_pekerja, bulan_tuntutan, tahun_tuntutan')    
            ->where('status="A3"')
            ->queryAll();       

    if(empty($sizeof[0][totalStatus])){ $count = 0; }
    else { $count = $sizeof[0][totalStatus]; }

    $criteria->having="$count < 1";
...