2

1つのテーブルのフィールドを更新する方法、私のモデルはUserと呼ばれ、フィールド'enable'を変更したいと思います。私はこれをします。

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');
}

しかし、これはうまく機能しません。フィールドを変更しないでください。助けてください...Cakephp2.3でそれがどのように行われるのかわからない場合は、Cakephp2.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 に答える