Yii:命名关系和字段

Yii:命名关系和字段,yii,naming-conventions,Yii,Naming Conventions,我为DB字段和关系编写了一些同名的Yii代码: public function relations() { return array( 'kin' => array(self::BELONGS_TO, 'Kin', 'kin'), 'child' => array(self::BELONGS_TO, 'Child', 'child'), ); } 现在我明白这是错误的,因为字段属性上的关系“覆盖”和获取子ID的查询(如$this->c

我为DB字段和关系编写了一些同名的Yii代码:

public function relations()
{
    return array(
        'kin' => array(self::BELONGS_TO, 'Kin', 'kin'),
        'child' => array(self::BELONGS_TO, 'Child', 'child'),
    );
}
现在我明白这是错误的,因为字段属性上的关系“覆盖”和获取子ID的查询(如
$this->child
)不起作用


我的问题:对于DB字段和关系,您建议采用哪种命名方案?

首先,我避免在表之后命名主键。这使得这种说法很难理解。我总是把主键命名为childId或kinId;这样就很清楚你在说什么领域了

我认为命名没有硬性规定,除了在你的上下文中使用有意义的东西。对于这种情况,假设我正确理解了您的表结构,我倾向于这样做: 表1:亲属 主键:kinId

表2:儿童 主键:childId 表kin中的外键:fkKinId

然后,假设一个亲属可以有多个子女,则亲属模型中的关系变成:

public function relations()
{
    return array(
        'children' => array(self::HAS_MANY, 'Child', 'fkKinId'),
    );
}

然后,如果您在亲属模型中,可以使用$this->children调用您亲属的子模型。

首先,我要避免在表后命名主键。这使得这种说法很难理解。我总是把主键命名为childId或kinId;这样就很清楚你在说什么领域了

我认为命名没有硬性规定,除了在你的上下文中使用有意义的东西。对于这种情况,假设我正确理解了您的表结构,我倾向于这样做: 表1:亲属 主键:kinId

表2:儿童 主键:childId 表kin中的外键:fkKinId

然后,假设一个亲属可以有多个子女,则亲属模型中的关系变成:

public function relations()
{
    return array(
        'children' => array(self::HAS_MANY, 'Child', 'fkKinId'),
    );
}

然后,如果您在亲属模型中,您可以使用$this->children为您的亲属调用子模型。

这是否回答了您的问题?如果有,也许你可以接受答案。非常感谢。这回答了你的问题吗?如果有,也许你可以接受答案。非常感谢。