使用cakephp更新表字段时出错

时间:2013-05-09 22:07:14

标签: php database cakephp

我在cakephp中有一个名为AdminsController的控制器。使用addadmin($ id)函数,如您所见,我尝试将用户的角色更新为“admin”,使用他的用户ID(变量$ id)在数据库中找到他。

class AdminsController extends AppController {

public $helpers = array('Html','Form');
var $uses = array('Admin', 'User');



public function index() {
    if(!($this->Auth->user('username') && $this->Auth->user('role') == 'admin')) {
        throw new NotFoundException(__('Unauthorized access.Please login first.'));
        $this->redirect(array('controller' => 'users','action' => 'login'));

    }
}



public function addAdmin($id) {
    $this->loadModel('User');
    $this->User->id = $id;
    $this->User->set('role','admin');
    $this->User->save();
}



}

但是这段代码不起作用,尽管stackoverflow中的许多其他cakephp用户都告诉我这是这样做的方法。 你知道可能出了什么问题,或者你可以帮助我吗?

提前谢谢你!

2 个答案:

答案 0 :(得分:1)

试试这个:

public function addAdmin($id) {
    $this->loadModel('User');
    $this->User->id = $id;
    $this->User->saveField('role','admin');
}

如果这不起作用,则表示您没有获得正确的ID。

答案 1 :(得分:1)

'role'是users表中的字段吗?并且'admin'是该字段的有效值吗?如果是这样,这应该有效:

$this->User->id = $id;
$this->User->saveField('role', 'admin');

here。希望这会有所帮助。