1

私は自分のアプリケーションで aco の / aro を稼働させようとしています。CakePHP のチュートリアルでは、ユーザーを追加すると自動的に aros テーブルに追加されるはずですが、機能していません。

ユーザーモデル

class User extends AppModel {
    var $name = 'User';
    public $belongsTo = array('Group');
    public $actsAs = array('Acl' => array('type' => 'requester'));

    function beforeFilter() {
            parent::beforeFilter(); 
            $this->Auth->allowedActions = array('*');
    }

    public function parentNode() {
        if (!$this->id && empty($this->data)) {
            return null;
        }
        if (isset($this->data['User']['group_id'])) {
            $groupId = $this->data['User']['group_id'];
        } else {
            $groupId = $this->field('group_id');
        }
        if (!$groupId) {
            return null;
        } else {
            return array('Group' => array('id' => $groupId));
        }
    }   
    public function afterSave() {
        $this->Aro->create();
        $this->Aro->save(array('alias'=>$this->field('username')));
    }       
}

行すべきではない

    public $actsAs = array('Acl' => array('type' => 'requester'));

CakePHP マジックを実行し、ARO を自動的に作成しますか?

4

1 に答える 1

0

データベースに「グループ」および「ユーザー」と呼ばれるテーブルがあると仮定すると、 afterSave() のコードは不要だと思います。一度$actsAs設定したら、Aro メソッドを呼び出す必要はありません。

于 2013-03-18T18:06:56.200 に答える