2011-07-04 85 views
0

我正在从CSV导入数据,并且已成功通过使用$this->Book->set()函数并在其中传递包含所有fieldName => value对的哈希函数来在代码中成功手动设置数据字段。将CakePHP HABTM模型与视图关联

如何在代码中创建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关联?

+1

作为一个边注:他叫托尔金;) –

回答

3

而不是使用set将数据添加到新实体和save以保存它,请使用createsaveAll。在下面的示例中,将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(); 
+0

嗨,我已经编辑在你的答案标签阵列 - 我看到了这 - $>数据提交从表单添加动作;调整了你的代码,它激发了生命 - 感谢您的帮助! – Ash