0

私は、AdminsControllerという名前のcakephpにコントローラーを持っています。ご覧のとおり、addadmin($id) 関数を使用して、ユーザー 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 に答える