我的自我加入类别表格如下:
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 ......
答案 0 :(得分:2)
为field_id
添加输入时,表单助手会查找名为$fields
的变量。即,没有_id
的名称和复数。 $parentCategories
不符合该描述,因此未使用。 $parents
将是。
其次,$this->Category->ParentCategory
与$this->Category
相同。两者都引用了Category模型。无需通过ParentCategory
。
第三,将树模型加入自身并不是一个好主意。当您开始使用更高recursive
设置进行查询时,您就会明白原因。您应该将其设为proper Tree并使用TreeBehavior方法进行查询。