Я работаю над методом редактирования. После сохранения данных отправляется электронное письмо с изменениями, внесенными во время редактирования. Все работает, кроме одной бешеной, но важной ошибки. Здесь он очень просто отгоняется:CakePHP: поиск данных после сохранения
$data = $this->SupportTicket->readForView($st_id);
$this->SupportTicket->id = $st_id;
if ($this->SupportTicket->save($this->request->data)) {
//call custom model method to pull view data
$data = $this->SupportTicket->readForView($st_id);
//do something with this data
}
Проблема заключается в том, что данные $ выдаются с предварительными данными. Поэтому то, что я потом пытаюсь сделать с новыми данными, не работает. Я не могу просто использовать данные $ this-> request->, потому что у него нет полных данных, которые я хочу в нем.
Сохранение однако работа. Если я обновляю метод просмотра для той же записи, он отображается как обновленный. Так что это экономия, но когда я нахожусь после сохранения, это дает мне старые данные.
Любые идеи?
Обновление: этого не происходит с findById ($ st_id), поэтому это должно быть связано с моим пользовательским методом. Код:
public function readForView($id)
{
$data = $this->find('first', array(
'conditions' => array(
'SupportTicket.id' => $id
),
'contain' => array(
'User',
'Owner'
)
));
if (empty($data)) {
throw new notFoundException('Ticket not found');
}
$data['SupportTicket']['type_long'] = $this->getLongType($data['SupportTicket']['type']);
$data['SupportTicket']['status_long'] = $this->getLongStatus($data['SupportTicket']['status']);
$data['SupportTicket']['name'] = 'Support Ticket #' . $data['SupportTicket']['id'] . ' - ' . $data['SupportTicket']['title'];
return $data;
}
Копирование кода из этого метода в контроллер дает тот же результат.
Вы по какой-либо шанс использовать [** кеширование запросов **] (http://book.cakephp.org/2.0/en/models/model-attributes.html#cachequeries) (Model :: $ cacheQ ueries)? – ndm
Согласитесь, @ndm - должно произойти какое-то кэширование. – Dave
Да, вот и все! Я не писал приложение изначально и вряд ли смотрю в AppModel. – gazareth