我是Yii框架的新手并且有一个问题。
我有一个名为'node'的表,其中包含以下字段:
parent_id也包含此表中存在的节点的父节点的id。
我使用Gii界面创建了模型,控制器和视图文件。在视图文件中显示父ID的id但我想显示父名而不是其id。
我想我可能需要在此表的模型类中添加公共属性,因此我可以通过视图文件中的> parent_name访问它。
我该怎么办?我应该更改哪些文件?
答案 0 :(得分:1)
您应该拥有parent
表的父级和关系,如:
'parent' => array(self::BELONGS_TO, 'Parent', 'parent_id)
或
'parent' => array(self::BELONGS_TO, 'Node', 'parent_id'),
如果它与同一张表有关系。然后你就可以像这样访问父名:
echo CHtml::value($node, 'parent.name');
答案 1 :(得分:1)
您应该与父节点有关系。
所以在你的Node :: relations函数中,你应该有类似的东西:
'parent' => array(self::BELONGS_TO, 'Node', 'parent_id'),
要从您的孩子那里获得这个值,您可以这样做(假设您的子节点变量名为$ childNode):
echo $childNode->parent->name;
如果你真的想做...
$childNode->parent_name;
...出于某种原因,您可以在Node模型中创建一个属性,如下所示:
public function getParent_name()
{
if ($this->parent == null)
return '';
return $this->parent->name;
}
现在你可以打电话给...
$childNode->parent_name;
OR
$childName->getParent_name();
获取父节点的名称。