0

我的自加入类别表如下:

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
)

但是这个数组并没有被 Form helper 用来填充那个下拉列表。我该怎么办?这是 1.3 中 Cake 的表单助手的错误吗?它从未发生在1.2中......

4

1 回答 1

2

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

二、$this->Category->ParentCategory同理$this->Category。两者都引用了 Category 模型。无需经过ParentCategory

第三,将 Tree 模型加入到自身中通常不是一个好主意。当您开始使用更高的recursive设置进行查询时,您就会明白为什么。您应该改为将其设为适当的树并使用 TreeBehavior 方法对其进行查询。

于 2010-08-20T05:42:20.130 回答