1

私は2つのテーブルを持っています: "tblcongvanden" (ID, tencongvan) (1)-------<- (n) "tblcanbothuchien" (ID, maCongVan(FK), maCanBo, daXem)

(tblcongvanden テーブルの) congvanden のモデルでは、次の関係があります。

public function relations() {
    return array(
        'canbothuchien' => array(self::HAS_MANY,'canbothuchien','maCongVan'),
        'mucdomat' => array(self::BELONGS_TO,'mucdomat','maMucDoMat'),
    );
}

そして私には機能があります

public function dsCVDchuaXem(){
    $userid = canbo::model()->find('tenDangNhap=:ten',array(':ten'=>Yii::app()->user->id))->ID;

    $criteria = new CDbCriteria;
    $criteria->with= array('canbothuchien','mucdomat');
    $criteria->condition = 'maCanBo=:ma';
    $criteria->params= array(':ma'=>$userid);

    $criteria->compare('t.ID',$this->ID);
    $criteria->compare('tieuDe',$this->tieuDe,true);
    $criteria->compare('soDen',$this->soDen,true);

    $rev=$this->ngayDen;
    $rev = preg_replace('/^(\d{1,2})-(\d{1,2})-(\d{2,4})$/',"$3-$2-$1",$rev); //for day-month-year
    $criteria->compare('ngayDen', $rev,true);

    $rev=$this->ngayThang;
    $rev = preg_replace('/^(\d{1,2})-(\d{1,2})-(\d{2,4})$/',"$3-$2-$1",$rev); //for day-month-year
    $criteria->compare('ngayThang', $rev,true);

    $criteria->compare('maMucDoMat',$this->maMucDoMat);
    $criteria->together = true;

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

index.php で、フィールド「daXem」を Cgridview に表示するにはどうすればよいですか?

(入力'value'=>'$data->canbothuchien[0]->daXem'したところ、エラーは「オブジェクト以外のプロパティを取得しようとしています」、または入力"value'=>'$data->canbothuchien->daXem"した場合もエラーです)

4

4 に答える 4

3

いいえ

'value'=>'$data->canbothuchien[0]->daXem' 

==> :

'value'=>'$data->canbothuchien->daXem' 

:)

于 2013-10-27T23:47:29.473 に答える
1

これを試して

array (
         'header'=>'daXem',
         'value'=>function($data) {
            return (!empty($data->canbothuchien->daXem)) ? $data->canbothuchien->daXem : '';
                }
    ),

また

aferFind()またはbeforeFind()フックの問題を引き起こします。これらのフックを作成した場合は、再確認してください。

于 2013-10-28T10:03:15.893 に答える
1

以下で試すことができます:

count($data->canbothuchien)?$data->canbothuchien[0]->daXem:""
于 2013-10-28T07:08:17.877 に答える