我正在从CSV编写导入,并且能够使用$this->Book->set()
函数成功地在代码中手动设置模型上的数据字段,并向其传递包含所有fieldName => value
对的哈希值
如何在代码中创建habtm关联?我在文档中看到的所有示例都基于视图中表单返回的$this->data
。因为我的数据来自csv文件,而不是视图,所以我不能使用它!
所以在下面的例子中:
// Book habtm Tags
// Tag habtm Books
$this->Book->create();
$this->Book->set(
array(
'author' => 'tolkein',
'title' => 'lord of the rings')
);
$arrayOfTagIds = array(1, 5, 6);
// Do something with $arrayOfTagIds...
$this->Book->save();
如何将$ arrayOfTagIds与Book相关联?
答案 0 :(得分:3)
使用set
和save
,而不是使用create
向新实体添加数据而使用saveAll
保存数据。在下面的示例中,将BookTag
模型替换为书籍和标签之间关系中使用的模型的名称。您还需要更改tag_id
以匹配代表标记ID的字段的名称。
示例:强>
$book = array(
'Book' => array(
'author' => 'tolkein',
'title' => 'lord of the rings'
),
'Tag' => array(
'Tag' => array(1,5,6);
)
);
$this->Book->create($book);
$this->Book->saveAll();