【发布时间】:2013-06-26 09:33:51
【问题描述】:
我尝试将标签系统添加到我的网站。
用户可以创建工单并向其添加标签。
为此,我在 Models Ticket 和 Tag 之间建立了 HABTM 关系。
我现在的问题是:
当我保存一个新关系时,我可以在 tags_tickets 表中多次使用相同的 Ticket id,但只要我尝试多次使用 tag_id,它就会删除该 id 的旧条目。
class Tag extends AppModel {
public $name = 'Tag';
public $actsAs = array('Containable');
public $hasAndBelongsToMany = array(
'Ticket' => array(
'className' => 'Ticket',
'joinTable' => 'tags_tickets',
'foreignKey' => 'tag_id',
'associationForeignKey' => 'ticket_id',
'unique' => 'keepExisting',
)
);
}
class Ticket extends AppModel {
public $name = 'Ticket';
public $actsAs = array('Containable');
public $hasAndBelongsToMany = array(
'Tag' => array(
'className' => 'Tag',
'joinTable' => 'tags_tickets',
'foreignKey' => 'ticket_id',
'associationForeignKey' => 'tag_id',
'unique' => 'keepExisting',
)
);
}
在控制器的功能中我做了一个 saveAll。
只是我的意思的一个例子:
ticket.id = 1 和 tag_id = 1 工作得很好。
我现在可以添加例如 ticket.id = 1 和 tag_id = 2。
但是当我添加 ticket.id = 2 和 tag_id = 1 时,它会删除带有 ticket.id = 1 和 tag_id = 1 的条目。
我无法让它正常工作。 我不想将 unique 更改为 false,因为我不想在数据库中有多次相同的关系。有没有办法解决这个问题?
【问题讨论】:
标签: cakephp has-and-belongs-to-many