Laravel 5.2事件,在本地工作的听众而不是

时间:2017-04-19 05:45:22

标签: php laravel events amazon-ec2 laravel-5.2

我每次注册新用户时都会尝试触发事件。为此,在我的 EventServiceProvider 中添加了

protected $listen = [
    'App\Events\UserRegistered' => [
        'App\Listeners\UserRegisteredListener',
    ],
];

然后跑

php artisan event:generate

为我创建了一个事件 UserRegistered 和一个侦听器 UserRegisteredListener 。在我的UserRegistered我有

public function __construct(User $user)
{
   $this->user = $user;
}

我的UserRegisteredListener

public function handle(UserRegistered $event)
{
    $user = $event->user;
    $user->cart()->save(new Cart);
    $user->wallet()->save(new Wallet);
}

我从我的AuthController特征 RegistersUsers

中解雇了该事件
public function register(Request $request)
{
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    Auth::guard($this->getGuard())->login($this->create($request->all()));

    Event::fire(new UserRegistered(Auth::user()));

    return redirect($this->redirectPath());
}
  

逻辑在localhost上完全正常,但是当我将它推送到   正在运行EC2 amazon linux实例的prod服务器   事件根本没有被解雇。

1 个答案:

答案 0 :(得分:0)

该事件是从 RegistersUsers.php 触发的,它是Vendor文件夹(gitignore)的一部分。哪个在本地可用,但在prod的 RegistersUsers.php 上没有。

将事件触发器移动到AuthController