Обычно, когда вы вызываете сохранение, как в:
$this->User->save($this->request->data)
Данные в $ this-> request-> data очищаются по умолчанию. В вашем методе редактирования у вас есть оператор if, который снова использует то же самое сохранение.
Функциональные возможности по умолчанию, которые, как я полагаю, вы скопировали из метода редактирования «cakebaked», обычно сохраняются и используют возвращенную логику для включения оператора if. Во второй раз, когда вы вызываете его, вы можете получить ложное возвращение, которое, вероятно, пропускает этот оператор if.
Для отладки я предлагаю несколько из них в разных местах:
debug($this->request->data);
Кроме того, отладочные распечатки очищаются при перенаправлении, поэтому, в то же время, вы можете закомментировать перенаправление внутри оператора if следующим образом:
if ($this->User->save($this->request->data)) {
$this->Session->setFlash('Успешно променихте профила си.', 'success_message');
//$this->redirect(array('action' => 'profile'));
}