CakePHP:绑定模型不起作用

Moe*_*eet 3 cakephp

我有用户HABTM专业.在用户编辑中,有一个专业的复选框列表.当我在用户模型中定义HABTM关系时,它正在工作.但由于这种关系正在中断其他功能,我将其删除并将其放入用户控制器中

$this->User->bindModel(
        array(
            'hasAndBelongsToMany' => 
            array(
                'Profession' =>
                    array(
                        'className'              => 'Profession',
                        'joinTable'              => 'professions_users',
                        'foreignKey'             => 'user_id',
                        'associationForeignKey'  => 'profession_id',
                        'unique'                 => true,
                        'conditions'             => '',
                        'fields'                 => '',
                        'order'                  => '',
                        'limit'                  => '',
                        'offset'                 => '',
                        'finderQuery'            => '',
                        'deleteQuery'            => '',
                        'insertQuery'            => ''
                    )
                )
            )
        );  
Run Code Online (Sandbox Code Playgroud)

该绑定函数的返回值也是如此.

现在当我调用$ this-> User-> saveAll($ this-> data)时,不再在professions_users表中创建行.

任何的想法?

Dan*_*ght 7

bindModel一个find操作的默认行为是存在,然后恢复为默认关联.您可能认为某个save操作不会触发此操作,但如果您使用Cake的count-caching功能,或者使用带有afterSave执行回调的Behavior find,则可能是错误的.

尝试传递false作为Model::bindModel通话的第二个参数.这将使您的动态绑定持续到请求的持续时间.saveAll通过调用完成后,您始终可以显式重置关联Model::resetAssociations.