CakePHP3.6にてユーザー認証の必要なアプリケーションを開発しております。
認証基盤はCakdDC/Usersというプラグインを利用しています。
ユーザー登録情報入力後にメール送信して本人確認を行うのですが、CakdDC/Usersプラグインでは「メールを確認してください」といったフラッシュメッセージがでるのみで分かりにくいため、メール送信した旨を表示した画面(send_mail.ctp)に遷移したいと考えております。
CakeDC/UsersプラグインにはafterRegisterというイベントがあるため、そのイベントリスナーにて画面遷移を行おうと思いましたがリダイレクトやビューの指定では動作しませんでした。
ご教示いただけますと幸いです。
UserEventListener.php
PHP
1<?php 2namespace App\Event; 3 4use Cake\Event\Event; 5use Cake\Event\EventListenerInterface; 6use Cake\Controller\ComponentRegistry; 7use App\Controller\Component\ActiveCompanyComponent; 8use App\Controller\Component\AuthCompanyComponent; 9use App\Controller\Component\AuthComponent; 10use App\Controller\Component\MyUsersAuthComponent; 11use Cake\Controller\Controller; 12use CakeDC\Users\Controller\Component\UsersAuthComponent; 13 14class UserEventListener implements EventListenerInterface 15{ 16 public function implementedEvents() 17 { 18 return [ 19 UsersAuthComponent::EVENT_AFTER_REGISTER => 'afterRegister', 20 ]; 21 } 22 23 public function afterRegister(Event $event){ 24 //リダイレクトの場合 25 $event->_subject->redirect(['controller'=>'MyUsers','action'=>'sendMail']); 26 27 //ビューを指定する場合 28 $event->_subject->render('MyUsers/send_mail'); 29 return $event; 30 } 31}
あなたの回答
tips
プレビュー