Yii:命名关系和领域

时间:2013-05-18 15:16:29

标签: yii naming-conventions

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

public function relations()
{
    return array(
        'kin' => array(self::BELONGS_TO, 'Kin', 'kin'),
        'child' => array(self::BELONGS_TO, 'Child', 'child'),
    );
}

现在我明白这是错误的,因为关系“覆盖”字段属性和$this->child之类的查询以获取子ID不起作用。

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

1 个答案:

答案 0 :(得分:3)

首先,我要避免在表后命名主键。这使得这种陈述难以阅读。我总是将我的主键命名为childId或kinId;这样很清楚你在说什么领域。

我认为除了在你的上下文中使用有意义的内容之外,没有关于命名的硬性规则。对于这样的事情,假设我已正确理解你的桌面结构,我倾向于这样做: 表1:亲属 主键:kinId

表2:孩子 主键:childId 来自表kin的外键:fkKinId

然后,假设一个亲属可以有很多孩子,那么你在Kin模型中的关系就会变成:

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

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