2010-08-20 59 views
0

我自己加入分類表如下:CakePHP的1.3,表單輔助和自助註冊表

id, name, description, parent_id 

我用蛋糕烘焙生成模型,控制器和視圖。型號 已設置$ belongsTo和$ hasMany關聯。在 控制器的add()中,

$parentCategories = $this->Category->ParentCategory->find('list'); 
$this->set(compact('parentCategories')); 

存在。在添加視圖,蛋糕烘焙產生的形式是:

<?php 
     echo $this->Form->input('name'); 
     echo $this->Form->input('description'); 
     echo $this->Form->input('isincome'); 
     echo $this->Form->input('parent_id'); 
?> 

當我在瀏覽器中運行,該PARENT_ID領域越來越下拉,但 它沒有被填充任何數據。我在添加視圖中使用

<?debug($parentCategories);?> 

,並且愉快地輸出

Array 
(
    [1] => Entertainment 
    [2] => Groceries 
) 

但這陣列不被用於填充由 表格輔助下拉。我該怎麼辦?這是1.3的Cake's Form助手的錯誤嗎?它從未發生在1.2 ...

回答

2

當爲field_id添加輸入時,表單助手會查找名爲$fields的變量。即,沒有_id的名稱和複數。 $parentCategories不符合該描述,所以沒有使用。 $parents會。

二,$this->Category->ParentCategory$this->Category相同。兩者都引用類別模型。無需經過ParentCategory。第三,加入樹模型本身並不是一個好主意。你會明白爲什麼當你開始查詢更高的recursive設置。您應該改爲使其成爲proper Tree並使用TreeBehavior方法來查詢它。

+0

感謝deceze,它的工作!但我不知道爲什麼烘烤產生這樣的輸出然後..我以上張貼的是蛋糕烘烤生成的代碼! – Ashok 2010-08-20 06:24:16

+0

@Asok這就是爲什麼你不能自我加入模型,烘烤不能很好地處理它。 :) – deceze 2010-08-20 06:42:05