Как изменить родителя ARO в CakePHP - PullRequest
1 голос
/ 02 ноября 2011

У меня проблемы с обновлением таблицы aros в моем приложении CakePHP. Вот код, который я получил:

$aro = new Aro();
$targetAro = $aro->find('first', array('conditions' => array('foreign_key' => intval($user['User']['id']))));
$newParent = $aro->find('first', array('conditions' => array('alias' => $userUpdate->level)));
$targetAro['Aro']['parent_id'] = $newParent['Aro']['id'];
$aro->updateAll($targetAro);

Я добавил операторы журнала отладки, чтобы убедиться, что я получаю правильные результаты от вызовов поиска. Но когда я проверяю базу данных после вызова updateAll, данные остаются неизменными. Есть идеи, что может происходить?

Я также пытался вызвать $ aro-> setParent, но не смог заставить это работать.

1 Ответ

0 голосов
/ 03 ноября 2011

Я обнаружил проблему, отследив код, который делает подобное в консоли для торта. Вместо использования $ aro-> updateAll ($ targetAro) я должен использовать $ aro-> saveAll ($ targetAro) .

updateAll () используется для сохранения изменений ряда объектов. Первый аргумент должен быть массивом значений. saveAll () используется, когда вы просто хотите сохранить изменения в одной сущности, как в случае с кодом выше.

Хотя мне кажется, что я должен, я не смог найти вывод ошибок нигде в журналах или выводе скрипта из-за неверных аргументов, которые я передавал updateAll ().

...