2012-12-28 64 views
0

我是Yii框架中的新成員並且有問題。在Yii的活動記錄的模型文件中添加新屬性

我有一個名爲 '節點' 表,該表具有以下字段:

  • ID
  • PARENT_ID

PARENT_ID包含一個節點的父的ID存在於這個桌子也是。

我已經使用Gii界面創建了模型,控制器和視圖文件。在查看父文件的id文件顯示,但我想顯示父母的名稱,而不是它的ID。

我想也許我需要在這個表的模型類中添加一個公共屬性,所以我將通過視圖文件中的 - > parent_name來訪問它。

我該怎麼辦?我應該更改哪些文件?

回答

1

你應該和父節點有關係。

所以在您的節點::關係的功能,你應該是這樣的:

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

爲了讓您的孩子這個值,你可以做(​​假設你的子節點變量命名爲$ childNode):

echo $childNode->parent->name; 

如果你真的希望能夠做到......

$childNode->parent_name; 

...出於某種原因,你可以這樣建立在你的節點模型屬性:

public function getParent_name() 
{ 
    if ($this->parent == null) 
     return ''; 

    return $this->parent->name; 
} 

現在你可以調用...

$childNode->parent_name; 

OR

$childName->getParent_name(); 

獲取父節點的名稱。

1

你應該有一個家長對parent表和關係,如:

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

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

如果它是關係到同一個表。然後你就可以像這樣訪問父級名稱:

echo CHtml::value($node, 'parent.name'); 
+0

我沒有父表。父母也在節點表中。 –

相關問題