laravel中的简单事件监听器

时间:2017-05-24 13:16:55

标签: laravel laravel-5

我有一个小应用程序,我看不到它增长超过几页因此对于一个事件,我决定在路由器中web.php

这是代码

Event::listen('simpleEvent', function($user){ 
    $user->last_login = new DateTime;
     $user->save();
});

我想在特定方法上使用该事件

public function getLogin(){
    $user = User::find(1);
    $device = $agent->device();
    $platform = $agent->platform();
    $browser = $agent->browser();
    $ip = Request::ip();
    Event::fire('simpleEvent','[$user]);    
}

我的问题是,如何将变量从getLogin传递到路由器中的事件?现在我只传递用户

1 个答案:

答案 0 :(得分:0)

只需包装传递数组所需的数据。

Event::listen('simpleEvent', function($data) {
    // dd($data);
});

public function getLogin()
{
    $user = User::find(1);
    $device = $agent->device();
    $platform = $agent->platform();
    $browser = $agent->browser();
    $ip = Request::ip();

    $data = compact('user', 'device', 'platform', 'browser', 'ip');

    Event::fire('simpleEvent', $data);
}