CakePHP 1.3,Form Helper和Self Joined Table

时间:2010-08-20 05:31:32

标签: cakephp cakephp-1.3

我的自我加入类别表格如下:

id, name, description, parent_id

我使用Cake Bake生成模型,控制器和视图。模型 已设置$ 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的Form帮助程序的错误吗?它从未发生在1.2 ......

1 个答案:

答案 0 :(得分:2)

field_id添加输入时,表单助手会查找名为$fields的变量。即,没有_id的名称和复数。 $parentCategories不符合该描述,因此未使用。 $parents将是。

其次,$this->Category->ParentCategory$this->Category相同。两者都引用了Category模型。无需通过ParentCategory

第三,将树模型加入自身并不是一个好主意。当您开始使用更高recursive设置进​​行查询时,您就会明白原因。您应该将其设为proper Tree并使用TreeBehavior方法进行查询。