как обновить поле cakephp
Как я могу обновить поле одной таблицы, моя модель называется Пользователь, и я хочу изменить поле "включить". Я делаю это.
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.
2
1 answers
Я отвечаю сам себе, решение состоит в том, чтобы взять возвращаемые значения из $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'));
}
2
Author: user2092568, 2014-04-28 15:01:52