2015-01-08 4 views
0

Я пытаюсь обновить запись с помощью фреймворка CakePHP, но я получаю сообщение об ошибке, которое говорит мне, что я не могу обновить. Но я не могу найти, откуда исходит ошибка.Cakephp не обновляет модель

Это место, где, если оператор не может в контроллере:

Controller/InvoicesController.php

if ($this->request->is(array('post', 'put'))) { 
     $this->Invoice->id = $id; 

     if ($this->Invoice->save($this->request->data)) { 
      $this->Session->setFlash(__('Invoice updated'), 'flash-success'); 
     } else {   
      $this->Session->setFlash(__('Please try again'), 'flash-error'); 
      debug($this->validationErrors, true); 
      pr($this->request->data); 
     } 
    } 

отладки результатов в этом:

/app/Controller/InvoicesController.php (line 73) 
null 

И это данные, полученные от CakePHP, когда я пытаюсь сохранить:

Array 
(
    [Invoice] => Array 
     (
      [date] => Array 
       (
        [day] => 05 
        [month] => 01 
        [year] => 2015 
       ) 

      [period] => 14 
      [notes] => 
     ) 

) 

Почему CakePHP не может обновить мою запись?

+0

Вы можете также разместить свою модель и вы можете распечатать данные что вы пытаетесь сохранить? т. е. показать, что такое $ id и $ this-> Invoice перед выполнением команды save() – Crembo

ответ

0

Для обновления данных запроса должно содержать значение ID

пример

$this->request->data['Invoice']['id'] = $id; 

или в edit.ctp добавить

$this->Form->hidden('id'); 
Смежные вопросы