0

我是 Yii 框架的新手,有一个问题。

我有一个名为“节点”的表,其中包含以下字段:

  • ID
  • 姓名
  • parent_id

parent_id 包含此表中也存在的节点的父节点的 ID。

我已经使用 Gii 界面创建了模型、控制器和视图文件。在视图文件中显示了 parent 的 id ,但我想显示 parent name 而不是它的 id 。

我想也许我需要在这个表的模型类中添加一个公共属性,所以我可以通过视图文件中的 ->parent_name 访问它。

我该怎么做 ?我应该更改哪些文件?

4

2 回答 2

1

您应该有一个parent表和关系的父项,例如:

'parent' => array(self::BELONGS_TO, 'Parent', 'parent_id)

或者

'parent' => array(self::BELONGS_TO, 'Node', 'parent_id'),

如果它与同一张桌子有关系。然后您将能够像这样访问父名称:

echo CHtml::value($node, 'parent.name'); 
于 2012-12-28T13:17:59.843 回答
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;

或者

$childName->getParent_name();

获取父节点的名称。

于 2012-12-28T15:37:40.923 回答