为什么ID在我的HABTM关联中重复?

时间:2013-04-19 13:14:12

标签: php cakephp cakephp-2.0

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

  1. 结构域
  2. 关键字
  3. domains_keywords
  4. 域模型具有以下关联:

    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

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

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

    保存很好但是如果我一次又一次地执行此操作,记录会在我的数据库中重复。为什么?我使用了keepexisting ...我不想多次使用相同的记录。

1 个答案:

答案 0 :(得分:0)

通过保持现有的关联,是不是应该如何工作?我想你必须使用

 'unique' => 'true'

获得你想要的东西。