cakePHP关联数据表单添加

时间:2014-01-17 17:31:27

标签: mysql cakephp cakephp-2.0

我正在使用一个简单的关联,其中Item被归类为Category。同时,ItemBrand制作。到目前为止,我有3个实体:ItemCategoryBrand。因此,例如,在我的Item表中,我有category_id = 1brand_id = 1

所以,阅读文档,我明白我应该做以下事情:

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创建一行,而不是类别或品牌。看起来INSERT INTO Item('name',description') VALUES(....根本没有类别或品牌。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

你应该改为

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

标签名称仍为CategoryBrand,但值将保存

您还应该使用$hasOne

更改$belongsTo = array('Category','Brand');