Поле данных сообщения cakephp отсутствует в операторе обновления SQL

Возникли проблемы с получением cakephp для обновления записи.

Код контроллера:

public function viewBenefit($id) {
    if ($this->request->is('post')) {
        $this->set('post', $this->request->data);
        $this->Benefit->id = $id;
        if ($this->Benefit->save($this->Benefit->data)) {
            $myVars['Sucsess'] = TRUE;
            $this->Session->setFlash('Updates Saved');
        } else {
            $myVars['NewID'] = 0;
            $myVars['Sucsess'] = False;
            $this->Session->setFlash('There was an error.');
        }
    }

    $this->Benefit->recursive = 2;
    $this->Benefit->id = $id;
    $this->set('benefit', $this->Benefit->read());
}

Соответствующий код просмотра:

<?php echo $this->Form->create('Benefit',array('action'=>'edit','url' => '#')); ?>
<?php echo $this->Form->input('id',array('type'=>'hidden')) . "\n"; ?>
<?php echo $this->Form->input('short_description',array('type'=>'textarea')) . "\n"; ?>
<?php echo $this->Form->end(); ?>

ПРИМЕЧАНИЕ. Форма заполняется через JS.

Данные POST (через отладку($post); )

array(
    'Benefit' => array(
        'id' => '1952e98e-f589-47d4-b458-11a1bd58ba3b',
        'short_description' => '<p>This is great sample insurance 321321</p>'
    )
)

Статус ОБНОВЛЕНИЯ SQL:

UPDATE `c16memberdev`.`benefits` SET `modified` = '2012-12-04 10:45:16' WHERE `c16memberdev`.`benefits`.`id` = '1952e98e-f589-47d4-b458-11a1bd58ba3b'

Как видите, поле «short_description» не добавляется в оператор SQL, и, следовательно, данные не добавляются в базу данных. Спасибо за вашу помощь.


person mbryant    schedule 04.12.2012    source источник
comment
где устанавливаются данные $this-›Benefit-›?   -  person Colby Guyer    schedule 04.12.2012


Ответы (1)


Попробуйте изменить

$this->Benefit->save($this->Benefit->data)

to

$this->Benefit->save($this->request->data)
person Colby Guyer    schedule 04.12.2012
comment
Вот и все, спасибо, сэр. - person mbryant; 04.12.2012