0

我在 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 用户告诉我这是这样做的方法。你知道可能出了什么问题,或者无论如何你都可以帮助我吗?

先感谢您!

4

2 回答 2

1

试试这个:

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

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

于 2013-05-10T08:19:38.777 回答
1

'角色'是你users表中的一个字段吗?'admin' 是该字段的有效值吗?如果是这样,这应该工作:

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

这里。希望这可以帮助。

于 2013-05-10T08:22:22.630 回答