0

監査証跡プラグインを実装しようとしています - https://github.com/robwilkerson/CakePHP-Audit-Log-Plugin

それはすべてうまくいきますが、指示に従ってユーザー認証を機能させることができません。次のエラーが表示されます-

Fatal error: Call to undefined method CakeErrorController::currentUser()

追加して指示に従いました

protected function currentUser() {
      $user = $this->Auth->user();
      return $user[$this->Auth->userModel]; # Return the complete user array
}

と追加

public function beforeFilter() {
        ...
        if( !empty( $this->data ) && empty( $this->data[$this->Auth->userModel] ) ) {
          $this->data[$this->Auth->userModel] = $this->currentUser();
        }
   }

私のappControllerに、誰かがこれを前に実装したか、エラーを認識しましたか?

4

2 に答える 2

1

Cakephp 2.4 では、Auth コンポーネントを操作するためにいくつかの変更を行う必要があります。

AppModel で:

public function currentUser() {
  $userId = AuthComponent::user('id');

  //Get the information of the user
  $currentUser = $this->importModel('User')->find('first', array(
      'conditions'=>array('User.id'=>$userId),
  ));

  //Return all the User
  return $currentUser['User'];
}

そして今、あなたのAppControllerで:本当は、コントローラーで他に何もする必要がないということです。それは、何らかの問題を防ぐためだけです。したがって、オプション:

  if( !empty( $this->request->data ) && empty( $this->request->data[$this->Auth->userModel] ) ) {
        $user['User']['id'] = $this->Auth->user('id');
        $this->request->data[$this->Auth->userModel] =  $user;
    }

わたしにはできる。

于 2014-04-16T12:09:00.580 に答える