2

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

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。

4

1 回答 1

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'));
}
于 2013-02-20T18:31:23.413 回答