Nebojsac 是正确的,因为您在视图中设置了两次变量“$Categories”。事实上,$this->set(compact('Categories'));
实际上可能会用空白值覆盖对 set() 的第一次调用。您应该使用:
$this->set('categories', $this->Category->find('list'));
或者:
$categories = $this->Category->find('list');
$this->set(compact('categories'));
当您使用 compact 时,它会查找名为 $categories 的变量,然后将该变量设置为 $categories 以便在视图中访问。
为了使您的category_id
(或任何您的外键)字段自动填充类别,您应该确保使用带有Product
模型的表单创建表单:
echo $this->Form->create('Product');
此外,表单输入应为:
echo $this->Form->input('category_id');
如果您想手动指定下拉菜单的选项,您可以再次使用 . 将类别传递给视图$this->set('categories', $this->Category->find('list'));
。
然后在您的视图文件中,将options
数组键设置为等于 $categories:
echo $this->Form->input('category_id', array('type' => 'select', 'options' => $categories));