[英]Where do I add events in Laravel 5.1 when user registers
我有一個Event::fire();
在getRegister();
在Illuminate/Foundation/Auth/RegistersUsers.php
但是我知道這不是正確的位置:
public function postRegister(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
Auth::login($this->create($request->all()));
Event::fire(new UserWasRegistered(Auth::id()));
return redirect($this->redirectPath());
}
如何添加事件,使其不在Illuminate和AuthController中?
編輯:該事件運行正常。 我只需要知道哪個位置最適合開火?
你有這個:
protected $listen = [
UserWasRegistered::class => [
SendActivationEmail::class,
CreateNewModel::class,
],
];
現在只需轉到控制台/命令提示符並運行php artisan event:generate
然后轉到App\\Events
和App\\Listeners
文件夾並找到適當的類並根據需要實施,因為Laravel
會為您生成這些類。
更新:實際上,您的問題仍然不清楚。 您不應該修改該trait
而是可以在任何類中使用該特征並使用該特征的方法。 在這種情況下,您可以實施自定義注冊。 為此,只需使用App\\Http\\Controllers\\Auth\\AuthController
並覆蓋postregister
方法:
namespace App\Http\Controllers\Auth;
// ...
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers;
// Other methods ...
public function postRegister(Request $request)
{
// Do the coding here
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
Auth::login($this->create($request->all()));
// Fire Event Here...
return redirect($this->redirectPath());
}
}
在此控制器(App\\Http\\Controllers\\Auth\\AuthController)
,您可以使用它來實現自定義postRegister
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.