如何获取cakephp中updateAll()函数更新的行的ID?

时间:2012-04-09 13:38:35

标签: php mysql cakephp cakephp-1.3 cakephp-appmodel

我正在开发cakephp中的应用程序。我需要获取使用cakephp中的updateAll()函数更新的所有行的id。任何建议都将受到高度赞赏。 Thanx ..

这是我应该在我的App模型中做什么

class AppModel extends Model {

    var $infos = array();

    function updateAll($fields, $conditions = true) {
        $this->$infos = $this->find('all', array('conditions' => $conditions));
        $return = parent::updateAll($fields, $conditions);
        $this->afterUpdateAll();
        return $return;
    }


    function afterUpdateAll(){
        foreach ($this->$infos as $info) {
            //do something
        }
    }

}

这会有用吗??

2 个答案:

答案 0 :(得分:1)

您必须发出find,并传递您传递给updateAll的相同条件。

如果更新操作更改了条件中使用的任何列中的数据,则应在调用find之前使用updateAll

答案 1 :(得分:0)

如果您UPDATE取消联合行 - 您可能会在SELECT之后再次UPDATE他们