我正在使用一个简单的关联,其中Item
被归类为Category
。同时,Item
由Brand
制作。到目前为止,我有3个实体:Item
,Category
和Brand
。因此,例如,在我的Item
表中,我有category_id = 1
,brand_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(....
根本没有类别或品牌。
我做错了什么?
答案 0 :(得分:1)
你应该改为
echo $this->Form->input('category_id');
echo $this->Form->input('brand_id');
标签名称仍为Category
和Brand
,但值将保存
您还应该使用$hasOne
$belongsTo = array('Category','Brand');