我是 Yii 框架的新手,有一个问题。
我有一个名为“节点”的表,其中包含以下字段:
- ID
- 姓名
- parent_id
parent_id 包含此表中也存在的节点的父节点的 ID。
我已经使用 Gii 界面创建了模型、控制器和视图文件。在视图文件中显示了 parent 的 id ,但我想显示 parent name 而不是它的 id 。
我想也许我需要在这个表的模型类中添加一个公共属性,所以我可以通过视图文件中的 ->parent_name 访问它。
我该怎么做 ?我应该更改哪些文件?
您应该有一个parent
表和关系的父项,例如:
'parent' => array(self::BELONGS_TO, 'Parent', 'parent_id)
或者
'parent' => array(self::BELONGS_TO, 'Node', 'parent_id'),
如果它与同一张桌子有关系。然后您将能够像这样访问父名称:
echo CHtml::value($node, 'parent.name');
您应该与您的父节点有关系。
所以在你的 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;
或者
$childName->getParent_name();
获取父节点的名称。