Yii关系模型

Yii关系模型,yii,relation,cgridview,Yii,Relation,Cgridview,在下面的例子中,我在尝试建立关系时遇到了麻烦 我有一个吃饭的人(身份证人,姓名,身份证母亲,身份证父亲) 我知道如何在模型中为不同的表建立外键关系。但在本例中,id_母亲和id_父亲被映射到另一个id_人(希望我说清楚) 这就是我试过的 public function relations() { return array( 'father'=>array(self::BELONGS_TO, 'PERSON', 'id_person'),

在下面的例子中,我在尝试建立关系时遇到了麻烦

我有一个吃饭的人(身份证人,姓名,身份证母亲,身份证父亲)

我知道如何在模型中为不同的表建立外键关系。但在本例中,id_母亲和id_父亲被映射到另一个id_人(希望我说清楚)

这就是我试过的

 public function relations() {
     return array(
            'father'=>array(self::BELONGS_TO, 'PERSON', 'id_person'),
            'mother'=>array(self::BELONGS_TO, 'PERSON', 'id_person'),
     );
}
我要他们的名字写在CGridVew里

$data->father->NAME
$data->mother->NAME

在这种情况下我该怎么办?

我想你定义了错误的关系。 关系方法应如下所示:

public function relations() {
     return array(
            'father'=>array(self::BELONGS_TO, 'PERSON', 'id_father'),
            'mother'=>array(self::BELONGS_TO, 'PERSON', 'id_mother'),
     );
}

我希望这将对您有所帮助。

在这种情况下,您的负载很慢。尝试将属性设置为条件,或将属性设置为true('father'=>array(self::belies_TO,'PERSON','id_PERSON','together'))。您还可以使用:$data->father$数据->父->名称:“”;一起工作,但当id_母亲和id_父亲为空时,我该怎么办?它表示在测试时没有定义关系0(isnull($data->father->NAME))……它不会工作,因为id\u father和id\u mother就像id\u person的外键。但他们都在同一张桌子上。在这种情况下,我想知道他们的名字