Mysql cakePHP关联数据表添加

Mysql cakePHP关联数据表添加,mysql,cakephp,cakephp-2.0,Mysql,Cakephp,Cakephp 2.0,我使用了一个简单的关联,其中项被分类在类别中。同时,由品牌制作项目。到目前为止,我有3个实体:项目,类别和品牌。因此,例如,在我的项目表中,我有类别_id=1,品牌_id=1 因此,阅读文档后,我明白我应该做以下工作: class Item extends AppModel { public $hasOne = array('Category','Brand'); } 在控制器中 public function add() { $this->set('categories

我使用了一个简单的关联,其中
被分类在
类别
中。同时,由
品牌制作
项目
。到目前为止,我有3个实体:
项目
类别
品牌
。因此,例如,在我的
项目
表中,我有
类别_id=1
品牌_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查询试图创建一行,其中包含
名称、描述
,但不包含类别或品牌。它看起来像是
INSERT-INTO-Item('name',description')值(..
完全没有类别或品牌

我做错了什么?

你应该换成

echo $this->Form->input('category_id');
echo $this->Form->input('brand_id');
标签名称仍将是
类别
品牌
,但值将被保存

您还应该使用
$belongsTo=array('Category','Brand');