2010-08-20 60 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