0

私は2つのテーブルを持っています、1. Students 2.SrkParents.

学生モデルの関係は、

'srkParents' => array(self::HAS_MANY, 'SrkParents', 'studentID'),

SrkParentsモデルの関係は、

'student' => array(self::BELONGS_TO, 'Students', 'studentID'),

ビューは、

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'students-grid',
'dataProvider'=>$dataProvider,
'filter'=>$model,
'columns'=>array('studentID','status','del',

array('name'=>'SrkParents.fathers_name',
'value'=>'$data->Students->fathers_name',
'type'=>'raw'),
array('class'=>'CButtonColumn',),),));

どこを間違えたのかわかりません。以下のようなエラーが発生します。

Property "Students.Students" is not defined. 
4

3 に答える 3

1

変更された回答:関係has_oneをhas_manyから変更するだけです

'srkParents' => array(self::HAS_ONE, 'SrkParents', 'studentID'),
于 2013-03-12T08:37:40.677 に答える
0

あなたの関係srkParentsHAS_MANY関係です。したがって、$data->srkParentsはオブジェクトの配列SrkParentsあり、オブジェクトではありません。生徒には複数の親がいるので、これは理にかなっています。

モデルの属性について十分に理解していないので、推測することしかできません。これを解決する1つの方法はget、モデルにerを追加して、Studentsループし$this->srkParentsて父親のオブジェクトを見つけ、そこから名前を返すことです。

public function getFatherName()
{
    foreach($this->srkParents as $parent)
        if($parent->sex=='m' /* just guessing */)
            return $parent->name;
}

$data->fatherName次に、グリッドビューで使用できます。

于 2013-03-12T12:50:29.017 に答える
0

あなたの関係の名前は学生であり、これは大文字と小文字を区別します。

に変更$data->Students->fathers_nameしてみてください$data->student->fathers_name

プロパティStudents.Studentsが定義されていません。

私は何が間違っているのですか?

  • 定義されていないStudentsモデルからフィールドを取得しようとしています。Students
于 2013-03-12T14:56:48.050 に答える