Gau*_*rma 3 php cakephp relationship has-and-belongs-to-many
有关HABTM的问题已在stackoverflow上发布了一些好的数字,但我仍然在寻找解决我的问题的方法.
我正在创建一个允许基于特定子类别创建主题的应用程序.在添加主题时,会要求用户提供标签(在同一表单上).现在,当用户在单击"添加"按钮时完成向主题添加标签后,主题已成功添加,但标签不是.
我已经为主题和标签创建了连接表tbl_tags_topics.(如cakephp的约定中所定义),并在主题和标签的模型中正确定义了'hasAndBelongsToMany'数组.
我现在缺少哪些步骤.
我还有一个与此相关的问题,但是当我能够将与主题相关的标签成功发送到数据库时,我会发布它.(该功能类似于stackoverflow的标签添加和附加功能)
非常感谢任何帮助.如果您找到HABTM,也请告诉我任何有关HABTM的好教程.
谢谢
保存其中一个字段时,您传递的参数如下:
$this->Model->save(
'Model' => array('id' => 1, 'name' => 'one random field)
);
Run Code Online (Sandbox Code Playgroud)
如果您有标签,即HABTM,您可以执行以下操作:
$this->Model->save(
'Model' => array('id' => 1, 'name' => 'one random field'),
'Tag' => array('Tag' => array(1))
);
Run Code Online (Sandbox Code Playgroud)
但是这个原生功能存在问题,每次保存对象时,都需要将每个标签传递给已保存的数组.否则,它们都将在被读取之前被删除.
但是你可以在面包店找到一个名为扩展关联的插件.
使用它,你会做:
$this->Model->habtmAdd('Tag', 1, 1);
Run Code Online (Sandbox Code Playgroud)
第一个"1"是模型的对象id.第二个是标签的对象ID.
并删除标签:
$this->Post->habtmDelete('Tag', 1, 1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5416 次 |
| 最近记录: |