1

Cgridview で Notrans_FPB を表示しようとすると、常にエラー 500「オブジェクト以外のプロパティを取得しようとしています」という問題が発生します。私のコードの何が問題なのですか、ありがとう..

これが私のコントローラー「DafTimbangBahan」です

    public function actionAdmin()
{
    $model=new DafTimbangBahan('search');
    $dafFpbs=new DafFpb;

    $model->unsetAttributes();  // clear any default values
    if(isset($_GET['DafTimbangBahan']))
        $model->attributes=$_GET['DafTimbangBahan'];

    $this->render('admin',array(
        'model'=>$model,
    ));
}

私のモデル DaftimbangBahan

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(
        'dafBpbs' => array(self::HAS_MANY, 'DafBpb', 'Notrans'),
        'dafFpbs' => array(self::HAS_MANY, 'DafFpb', 'Notrans'),
        'koSup' => array(self::BELONGS_TO, 'Supplier', 'KoSup'),
        'koCab' => array(self::BELONGS_TO, 'Cabang2', 'KoCab'),
        'bahans' => array(self::MANY_MANY, 'Bahan', 'det_timbang_bahan(Notrans, KoHan)'),
        'notransTimbangs' => array(self::HAS_MANY, 'NotransTimbang', 'Notrans'),
    );
}

これは私のビューファイルです

    <?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'daf-timbang-bahan-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(   
    array(
    'name'=>'dafFpbs.Notrans_FPB',
    'header'=>'No. FPB',
    'value'=>'$data->dafFpbs->Notrans_FPB',
    ),
    'NoTrans',
    array(
        'class'=>'CButtonColumn',
    ),
),
4

1 に答える 1

1

あなたの関係構造は間違っていると思います。あなたのモデル'dafFpbs' => array(self::HAS_MANY, 'DafFpb', 'Notrans')にあります。DafTimbangBahanこれは、すべてDafTimbangBahanのレコードに多くのNotransレコードがあることを意味します。オブジェクトではなく配列$data->dafFpbsになります。そのため、「オブジェクト以外のプロパティを取得しようとしています」というエラーが発生します。この問題を解決するには、代わりに (0 が例です) を使用する必要があります。$data->dafFpbs->Notrans_FPB'value'=>'$data->dafFpbs[0]->Notrans_FPB'

于 2015-03-27T08:46:13.173 に答える