Laravel 8中未收听内置事件

Laravel 8中未收听内置事件,laravel,laravel-8,Laravel,Laravel 8,我正在从我的控制器触发一些内置事件。但没有任何事件被(倾听和)回应。我已遵循设置密码重置功能,但\illumb\Auth\Events\PasswordReset事件不起作用。我的期望是,它应该发送确认电子邮件。以下是我的代码: routes/web.php: /。。。 路由::get('/reset password/{token}',[AuthController::class,'reset'])->中间件('guest')->名称('password.reset'); 路由::post('

我正在从我的控制器触发一些内置事件。但没有任何事件被(倾听和)回应。我已遵循设置密码重置功能,但
\illumb\Auth\Events\PasswordReset
事件不起作用。我的期望是,它应该发送确认电子邮件。以下是我的代码:

routes/web.php:

/。。。
路由::get('/reset password/{token}',[AuthController::class,'reset'])->中间件('guest')->名称('password.reset');
路由::post('/reset password',[AuthController::class,'shinny'])->中间件('guest')->名称('password.update');
app/Http/Controllers/AuthController.php:

/。。。
公共函数重置(字符串$token):视图
{
返回视图('auth/password/reset',['token'=>$token]);
}
公共函数(ResetUserRequest$request):重定向响应
{
$status=密码::重置(
$request->only('email','password','password\u confirmation','token'),
函数($user,$password)使用($request){
$user->forceFill(['password'=>$password])->save();
如果(!empty($user->getMemberToken())){
$user->setmembertoken(Str::random(60));
}
事件(新密码重置($user));//不工作
}
);
如果($status!==Password::Password\u RESET){
return back()->withErrors(['email'=>(状态)];
}
return redirect()->route('auth.signin')->with('status',_u($status));
}
但只响应了一个事件:
\illumb\Auth\Events\registed
。未响应任何其他事件。我怀疑发生这种情况是因为
\App\Providers\EventServiceProvider
provider中没有为其他事件(该事件除外)提供侦听器。这是我搭建项目时得到的:

namespace-App\Providers;
使用Illumb\Auth\Events\Registered;
使用Illumb\Auth\Listeners\SendEmailVerificationNotification;
使用Illumb\Foundation\Support\Providers\EventServiceProvider作为服务提供者;
使用照明\支持\立面\事件;
类EventServiceProvider扩展了ServiceProvider
{
/**
*应用程序的事件侦听器映射。
*
*@var数组
*/
受保护的$listen=[
注册::类=>[
SendEmailVerificationNotification::类,
],
//没有其他类型事件的侦听器
//这可能是原因吗?
];
/**
*为您的应用程序注册任何事件。
*
*@返回无效
*/
公共函数boot()
{
//
}
}
我基本上是一个JS开发人员,所以这一切对我来说似乎很复杂。客户特别要求我使用Laravel,所以这就是问题所在。有人能帮我吗

  • 没有其他类型事件的侦听器。您应该添加所需的侦听器
  • 这可能是原因吗?对
  • 可能是这样的:

    namespace App\Providers;
    use Illuminate\Auth\Events\PasswordReset; // Pay attention to the namespace 
    use Illuminate\Auth\Events\Registered;
    use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
    use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
    use Illuminate\Support\Facades\Event;
    
    class EventServiceProvider extends ServiceProvider
    {
        /**
         * The event listener mappings for the application.
         *
         * @var array
         */
        protected $listen = [
            Registered::class => [
                SendEmailVerificationNotification::class,
            ],
            PasswordReset::class => [
                //Listiners that you need to be called after triggering the PasswordReset event.
            ]
    
        ];
    

    如果是这种情况,为什么文档没有在触发“内置”事件之前注册侦听器的指导原则?除了这些监听器之外,几乎所有的东西都是预先配置好的?你知道我在哪里可以得到听众的推荐信吗?我的意思是,我应该为
    PasswordReset
    事件等注册哪个侦听器?@msrumon如果您编写自己的侦听器来做您想做的事情,则触发该事件的唯一原因是您可以添加一个侦听器(如果您想)