1

yiiアプリケーションに奇妙な問題があります。データベースに2つのテーブルPlayers-id、name、team_idとTeams-id、nameがあります。新しいプレーヤーを作成できますが、プレーヤーのプロファイルを表示したいときに、次の行に「非オブジェクトのプロパティを取得しようとしています」というエラーがあります。

'value'=>$model->team->NAME,

最も奇妙な問題は、ID 1と2のプレーヤーのURLをテストすると、すべてが正常で正しい情報が表示されることですが、他のIDの場合はこの問題が発生します。これが私のコードの一部です:

view.php

<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
    'ID',
    'NAME',
    'TEAM_ID', 
    array(
        'label'=>'Отбор',
        'type'=>'text',
        'value'=>$model->team->NAME,
    ),
),
)); ?>

Players.php

public function relations()
    return array(
      'team' => array(self::BELONGS_TO, 'TEAMS', 'ID'),
    );
}

Teams.php

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(
        'player' => array(self::HAS_MANY, 'PLAYERS', 'ID'),
    );
}

PlayersController.php

public function actionView($id)
{
    $teams = new CActiveDataProvider('Teams');
    $players = new CActiveDataProvider('Players');
    $this->render('view', array(
        'model'=>$this->loadModel($id),
    ));
}
4

1 に答える 1

4

relationsモデル内のバグを修正する必要があるようですPlayers:

public function relations()
    return array(
      'team' => array(self::BELONGS_TO, 'TEAMS', 'TEAM_ID'), // TEAM_ID instead of ID
    );
}
于 2012-08-20T19:50:28.643 に答える