CakePHP:绑定模型不起作用

CakePHP:绑定模型不起作用

问题描述:

我有用户HABTM专业。 在用户编辑中,有一个专业复选框列表。 当我在用户模型中定义HABTM关系时,它正在工作。 但当这种关系中断其他功能我删除,并把这个用户控制器CakePHP:绑定模型不起作用

$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'   => '' 
        ) 
       ) 
      ) 
     ); 

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

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

有什么想法?

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

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

+1

第二个参数“false”起作用。你是天才! :d – 2010-11-24 19:00:45