簡體   English   中英

用戶注冊時,我在Laravel 5.1中的哪里添加事件

[英]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\\EventsApp\\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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM