0

我正在使用最新版本的 cake php 2.3.2。我有三张桌子:

  1. 关键词
  2. 域关键字

领域模型具有这种关联:

public $hasAndBelongsToMany = array(
    'Keyword' =>
        array(
            'className'              => 'Keyword',
            'joinTable'              => 'domains_keywords',
            'foreignKey'             => 'domain_id',
            'associationForeignKey'  => 'keyword_id',
            'unique'                 => 'keepExisting'
        )
);

关键字模型:

public $hasAndBelongsToMany = array(
    'Domain' =>
        array(
            'className'              => 'Domain',
            'joinTable'              => 'domains_keywords',
            'foreignKey'             => 'keyword_id',
            'associationForeignKey'  => 'domain_id',
            'unique'                 => 'keepExisting'
        )
);

如您所见,我使用了 KeepExisting

现在,我以这种方式在此表中添加 reconds:

$this->Domain->DomainsKeyword->save(
                array(
                    'domain_id'  => $domain_id,
                    'keyword_id' => $key_id
                )
            )

保存很好,但如果我一次又一次地这样做,记录会在我的数据库中重复。为什么?我使用了keepexisting...我不想多次使用同一记录。

4

1 回答 1

0

keepexisting 不应该通过保持现有关联来工作吗?我认为你必须使用

 'unique' => 'true'

得到你想要的。

于 2013-04-19T13:19:39.533 回答