0

結合を使用してこの検索を行います。結果は正しいですが、選択したページサイズが結果の数よりも大きい場合でも、yii グリッドはすべての結果を表示しません。

ここに私のコードがあります:

        if($_GET['BaseIar']['description'] !='empty'){
            $criteria->with = array('class','classSi',);
            $this->description=$_GET['BaseIar']['description'];
            $criteria->compare('class.description', $this->description, true);
            $criteria->compare('classSi.description', $this->description, true, 'OR');
        }

ここに関係があります:

public function relations() {
    // NOTE: you may need to adjust the relation name and the related
    // class name for the relations automatically generated below.      
    return array( 
        'class' => array(self::HAS_ONE, 'BaseEiEquipItem', 'iar_no'),
        'classSi' => array(self::HAS_ONE, 'BaseSiReceivedItem','iar_no'),
    ); 
}

ここにグリッドがあります:

  $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'base-iar-grid',
    'dataProvider'=>$searchModel->search(),
    'columns'=>array(       
        array(
            'class'=>'CCheckBoxColumn',
            'id'=>'base-iar-id',        
            'selectableRows'=>2, // multiple rows can be selected       
        ),                  
        'iar_id',   
        'dateInspected',
        array( 
        'name'=>'inspectedBy', 
        'value'=>'(!empty($data->inspectedBy))?$data->inspectedBy0->person->lastName.", ".$data->inspectedBy0->person->firstName." ".$data->inspectedBy0->person->middleName:"---"',
        ),

        array(
        'name'=>'endUser',
        'value'=>'(!empty($data->endUser))?$data->endUser0->person->lastName.", ".$data->endUser0->person->firstName." ".$data->endUser0->person->middleName:"---"',
        ),
        'dateReceived',
        array(
        'name'=>'receivedBy',
        'value'=>'(!empty($data->receivedBy))?$data->receivedBy0->person->lastName.", ".$data->receivedBy0->person->firstName." ".$data->receivedBy0->person->middleName:"---"',
        ),
        array(
        'name'=>'requisitionOffice',
        'value'=>'(!empty($data->requisitionOffice))?$data->requisitionOffice0->code:"---"',
        'value'=>'$data->requisitionOffice0->code'
        ),
        'prNo',
        'poNo',

        array(
            'class'=>'InfosysButtonColumn',
            'template'=>'{view}',
            'afterDelete'=>'function(link,success,data){
                if(success){
                    jSuccess("Delete completed successfully!");                         
                }
            }',
            'buttons'=>array(
                'view' => array(
                    'label' => 'View details',
                    'url' => 'Yii::app()->createUrl("pims/IAR/BaseIar/view", array("id"=>$data["id"]))'
                        ),
            ),              
            'header'=>CHtml::activeDropDownList($model,'pageSize',array('10'=>'10','20'=>'20','30'=>'30','50'=>'50','100'=>'100','ALL'=>'All'),array('onchange'=>'$.fn.yiiGridView.update("base-iar-grid", {data:{pageSize:$(this).val()}});')),
        ),
    )
));

$criteria->with で複数の関係を宣言する正しい方法は?

4

1 に答える 1