如何更新一个表的字段,我的模型称为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。
答案 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'));
}