如何更新字段cakephp

时间:2013-02-20 16:26:34

标签: cakephp set field

如何更新一个表的字段,我的模型称为User,我想更改 字段'启用'。 我这样做。

function setstatus($id = null)
{
    $this->User->id = $id;
    if (!$this->User->exists())
    {
        $this->Session->setFlash('Invalid User', 'error');
        $this->redirect(array('action' => 'index'));
    }

    $valor = false;
    $enable = $this->User->read('enable');
    if ($enable == false)
        $valor = true;

    $this->User->saveField('enable', $valor);
    $this->redirect(array('action' => 'index'));
            $this->Session->setFlash('User update success', 'info');
}

但这不行。 没有改变这个领域。请帮我... 我使用Cakephp 2.3,如果不知道cakephp 2.3中的那个怎么样就像cakephp 1.3。

1 个答案:

答案 0 :(得分:2)

我自己回答,解决方案是将$this->ModelName->read(field);的返回值作为array ['model']['field']

以下是代码:

function setstatus($id = null)
{
    $this->User->id = $id;
    if (!$this->User->exists())
    {
        $this->Session->setFlash('Invalid user', 'error');
        $this->redirect(array('action' => 'administration'));
    }

    $enable= $this->User->read('enable');
    $msj = 'The user has been enabled';
    if ($enable['User']['enable'] == 1)
    {
        $enable= 0;
        $msj = 'The user is no longer enable';
    }
    else
        $enable= 1;

    $this->User->saveField('enable', $enable);
    $this->Session->setflash($msj, 'info');
    $this->redirect(array('action' => 'administration'));
}