2014-01-17 56 views
0

我正在使用一個簡單的關聯,其中Item歸類於Category。與此同時,ItemBrand製成。到目前爲止,我有3個實體:Item,CategoryBrand。所以,例如,在我的Item表中我會有category_id = 1,brand_id = 1cakePHP關聯數據表添加

所以,閱讀文檔,我明白我應該做到以下幾點:

class Item extends AppModel { 
    public $hasOne = array('Category','Brand'); 
} 

在控制器

public function add() { 
    $this->set('categories', $this->Item->Category->find('list')); 
    $this->set('brands', $this->Item->Brand->find('list')); 
    //... 

在查看

echo $this->Form->input('name'); 
echo $this->Form->input('description'); 
//... 
echo $this->Form->input('Category'); 
echo $this->Form->input('Brand'); 

的問題是,執行的MySQL查詢試圖創建一個帶有name, description的行,但不是該類別y或品牌。它看起來像INSERT INTO Item('name',description') VALUES(....沒有類別或品牌。

我在做什麼錯?

回答

1

你應該改變以

echo $this->Form->input('category_id'); 
echo $this->Form->input('brand_id'); 

的標籤名稱將仍然是CategoryBrand,但值將被保存

你也應該改變$hasOne$belongsTo = array('Category','Brand');

+0

這個解決它,謝謝 –