在CakePHP 2中取消绑定HasAndBelongsToMany并不解除绑定模型

时间:2016-07-19 21:47:11

标签: php cakephp-2.8

如何在CakePHP 2.8中取消绑定HasAndBelongsToMany关系?我有这个模型连接到任务模型(N:M关系)。

class Date extends AppModel
{

    public $name = 'Date';
    public $displayField = 'rdate';
    public $actsAs = array('Containable');
    public $hasAndBelongsToMany = array('Task' => array('className' => 'Task'));

    public function getCurrentDate()
    {
        return $this->find('first',
            array(
                'conditions' => array(
                    'Date.rdate' => date('Y-m-d')
                )
            )
        );
    }

}

我想在getCurrentDate()函数中取消绑定此关系,但此函数中的$this->recursive = -1;find()中的Date都无法正常工作。我只需要$this->unbindModel( array('hasAndBelongsToMany' => array('Task')) ); 模型中的一条记录,但查找返回与此模型关系的所有任务。

编辑#1:即使是解除绑定的模型也无法正常工作:

{{1}}

仍会返回关联的模型数据。

1 个答案:

答案 0 :(得分:0)

您可以使用Compressing objects: 100% (54/54), done. Writing objects: 100% (56/56), 2.14 MiB | 3.81 MiB/s, done. Total 56 (delta 16), reused 0 动态取消绑定模型。查看这些文档以了解详细信息。

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-fly