2015-09-21 11 views
5

私は

ver3.1.3 CakePHPによる経験していないです私は、ログイン認証機能を実装するための指示に従っ; http://book.cakephp.org/3.0/en/tutorials-and-examples/blog-auth-example/auth.html

私はケーキを成功裏にケーキを作ることができました。私のcakephp v3.1.3アプリ。

私はhttp://book.cakephp.org/3.0/en/tutorials-and-examples/blog-auth-example/auth.htmlからコピーと貼り付け、次のコードを有するUsersController.php

に問題があります。

public function beforeFilter(Event $event) 
{ 
    parent::beforeFilter($event); 
    // Allow users to register and logout. 
    // You should not add the "login" action to allow list. Doing so would 
    // cause problems with normal functioning of AuthComponent. 
    $this->Auth->allow(['add', 'logout']); 
} //public function beforeFilter(Event $event) 

このコードが存在すると、以下のエラーが発生しました。

(2048)厳格な: のApp \コントローラ\がUserControllerの宣言::のbeforeFilter()のApp \コントローラ\のAppControllerと 適合するものでなければならない::のbeforeFilter(ケーキ\イベント\イベント $イベント)[APP /コンローラ\ Autoload \ includeFile - ROOT \ vendor \ composer \ ClassLoader.php、 行412 Composer \ Autoload \ ClassLoader: :loadClass() - ROOT \ vendor \ composer \ ClassLoader.php、行301 spl_autoload_call - [内部]、行?? class_exists - [内部]、行?? Cake \ Core \ App.php、行66 Cake \ Core \ App.php、Cake \ Core \ App.php、Cake \ Core \ App.php、Cake \ Core \ App.php Cake \ Routing \ Filter \ ControllerFactoryFilter :: beforeDispatch() - CORE \ src \ Routing \ Filter \ ControllerFactoryFilter.php CORE \ src \ Routing \ Filter \ ControllerFactoryFilter.php CORE \ src \ Routing \ Filter \ ControllerFactoryFilter :: beforeDispatch() - CORE \ Cake \ Route \ DispatcherFilter :: handle() - CORE \ src \ Route \ DispatcherFilter.php、行145 Cake \ Event \ EventManager :: _ callListener() - CORE \ src \ Event \ EventManager.php、389行 Cake \ Event \ EventManager :: dispatch() - CORE \ src \ Event \ EventManager.php、 ライン355ケーキ\ルーティング\ディスパッチャ::は、dispatchEvent() - CORE \ SRC \イベント\ EventDispatcherTrait.php、ライン78 ケーキ\ルーティング\ディスパッチャ::派遣() - CORE \ SRC \ルーティング\ Dispatcher.php、 ROOT \ webroot \ index.php、line 37

問題のあるコードセグメントを削除すると、エラーが表示されなくなります。コードセグメントで何が問題になっていますか?

+3

[宣言のメソッドの宣言は、PHPの親メソッドと互換性があります]の可能な複製(http://stackoverflow.com/questions/3115388/declaration-of-methods-should-be-compatible-with-parent-methods- in-php) – burzum

+2

*エラーメッセージを読んでください。それはすでに間違っていることをあなたにかなり明確に伝えます。まだ理解できない場合は、それを探してみてください。これは標準的なPHPメッセージであり、Stackoverflowで1000回も前に感じたことがあります。私はその理由のために重複としてそれを閉じるために投票しました。 – burzum

+0

@ burzum、ありがとう。もっと慎重に勉強しましょう。 – user781486

答えて

19

ソリューションは、上記の行を持っていないUsersController.php

use Cake\Event\Event; 

にケーキ焼いたバージョンを次の行を追加することです。