Php 保存而不获取lastInsertId

Php 保存而不获取lastInsertId,php,cakephp,Php,Cakephp,我在PostgreSQL中有一个旧数据库,它具有多个主键 当我试图在这些表中保存任何信息时,出现了一个错误,因为CakePHP试图获取lastInsertId。因为,正如我们所知,CakePHP不支持多个主键 那么,我想知道,如何禁用此功能/选项 我试过了,但没有达到预期效果 $this->OrderDrinkBase->saveAll( $drinkBases, array('callbacks' => false, 'validate' => fals

我在PostgreSQL中有一个旧数据库,它具有多个主键

当我试图在这些表中保存任何信息时,出现了一个错误,因为CakePHP试图获取lastInsertId。因为,正如我们所知,CakePHP不支持多个主键

那么,我想知道,如何禁用此功能/选项

我试过了,但没有达到预期效果

$this->OrderDrinkBase->saveAll(
    $drinkBases,
    array('callbacks' => false, 'validate' => false)
);

上面的解决方案有效,所以我批准了答案。 但是,我想解释一下在某些情况下如何在CakePHP中禁用函数lastInsertId

class GroupToUser extends AppModel {

    var $name = 'GroupToUser';
    var $useTable = 'groups_users';

    var $primaryKeyArray = array('user_id','group_id');

    function exists($reset = false) {
        if (!empty($this->__exists) && $reset !== true) {
            return $this->__exists;
        }
        $conditions = array();
        foreach ($this->primaryKeyArray as $pk) {
            if (isset($this->data[$this->alias][$pk]) && $this->data[$this->alias][$pk]) {
                $conditions[$this->alias.'.'.$pk] = $this->data[$this->alias][$pk];
            }
            else {
                $conditions[$this->alias.'.'.$pk] = 0;
            }
        }
        $query = array('conditions' => $conditions, 'fields' => array($this->alias.'.'.$this->primaryKey), 'recursive' => -1, 'callbacks' => false);
        if (is_array($reset)) {
            $query = array_merge($query, $reset);
        }
        if ($exists = $this->find('first', $query)) {
            $this->__exists = 1;
            $this->id = $exists[$this->alias][$this->primaryKey];
            return true;
        }
        else {
            return parent::exists($reset);
        }
    }

}
有关更多信息,请查看此处

或者使用以下代码

class GroupToUser extends AppModel {

    var $name = 'GroupToUser';
    var $useTable = 'groups_users';

    var $primaryKeyArray = array('user_id','group_id');

    function exists($reset = false) {
        if (!empty($this->__exists) && $reset !== true) {
            return $this->__exists;
        }
        $conditions = array();
        foreach ($this->primaryKeyArray as $pk) {
            if (isset($this->data[$this->alias][$pk]) && $this->data[$this->alias][$pk]) {
                $conditions[$this->alias.'.'.$pk] = $this->data[$this->alias][$pk];
            }
            else {
                $conditions[$this->alias.'.'.$pk] = 0;
            }
        }
        $query = array('conditions' => $conditions, 'fields' => array($this->alias.'.'.$this->primaryKey), 'recursive' => -1, 'callbacks' => false);
        if (is_array($reset)) {
            $query = array_merge($query, $reset);
        }
        if ($exists = $this->find('first', $query)) {
            $this->__exists = 1;
            $this->id = $exists[$this->alias][$this->primaryKey];
            return true;
        }
        else {
            return parent::exists($reset);
        }
    }

}
有关更多信息,请查看此处


或者这个

对不起,问题不清楚,请你解释一下好吗more@Er.KT我修改了问题,现在请看。对不起问题不清楚,请你解释一下more@Er.KT我修改了问题,现在请看。我会测试我的朋友,稍后给你反馈。谢谢。如果我通知
$primaryKey=user\u id
也可以使用。无论如何,谢谢。这是一段时间的工作。我会测试我的朋友,然后给你反馈。谢谢。如果我通知
$primaryKey=user\u id
也可以使用。无论如何,谢谢。这是一段时间的工作。