※環境:CakePHP 4.0.3
beforeFilterを呼び出すため、コントローラー「UsersController」の中に、公式ドキュメントの指示通りに、
use Cake\Event\Event; class UsersController extends AppController { public function beforeFilter(Event $event) { parent::beforeFilter($event); } }
↑を書きしたが、
下記警告が表示されました。
Warning (2): Declaration of App\Controller\UsersController::beforeFilter(Cake\Event\Event $event) should be compatible with Cake\Controller\Controller::beforeFilter(Cake\Event\EventInterface $event)
★解決策:
警告の内容をよく確認すれば、「Cake\Event\Event」ではなく「Cake\Event\EventInterface」であることがわかりました。
→ 下記通りに書き直せばエラーが解消されました。
//use Cake\Event\Event; //(誤) use Cake\Event\EventInterface; //(正) class UsersController extends AppController { // public function beforeFilter(Event $event) //(誤) public function beforeFilter(EventInterface $event) //(正) { parent::beforeFilter($event); } }