cakephp Попытка обновить запись MySQL, где идентификатор записи уже существует - PullRequest
0 голосов
/ 10 февраля 2012

Я сохраняю несколько записей для модели и хочу обновить существующие записи, если company_id уже существует.

Я использую этот код в модели:

function beforeSave() {

        $found = $this->find("first",array(
                "recursive" => -1,
                "conditions" => array("company_id" => $this->data['Osm']['company_id'])));
        if(isset($found))
        {
            $this->data['Osm']['id'] = $found['Osm']['id'];
        }
        return true;
    }

, но яполучаю следующую ошибку: Ошибка: SQLSTATE [23000]: нарушение ограничения целостности: 1062 Дублирующаяся запись '60' для ключа 'PRIMARY'

Я понимаю, почему я получаю эту ошибку, но яне может заставить обновление вместо вставки.

1 Ответ

0 голосов
/ 10 февраля 2012

Вы должны установить переменную-член $id в методе, а не в данных. Делай $this->id = $found['Osm']['id']; вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...