Nebojsac是正確的,你是設置變量「$ Catego 「兩次在視圖中。實際上,$this->set(compact('Categories'));
實際上可能會覆蓋第一個調用set()的空白值。您應該使用:
$this->set('categories', $this->Category->find('list'));
OR:
$categories = $this->Category->find('list');
$this->set(compact('categories'));
當您使用緊湊,它正在尋找一個名爲$類變量,它然後設置該變量$類別是在訪問視圖。
爲了讓您的category_id
(或任何你的外鍵是)字段與類別進行自動填充,你應該確保您使用的是形式與Product
模型創建形式:
echo $this->Form->create('Product');
此外,表單輸入應該是:
echo $this->Form->input('category_id');
如果你想手動下來指定你降的選項,你可以再次通過類別爲t他認爲使用$this->set('categories', $this->Category->find('list'));
。
然後在您的視圖文件,設置options
數組鍵等於$類:
echo $this->Form->input('category_id', array('type' => 'select', 'options' => $categories));
是視圖$ Categories中的變量嗎?它默認情況下是小寫($類別)。另外,你不需要「設置」兩次 - 緊湊()的行是不必要的。 – 2012-07-21 15:46:54