laravel事件创建以及使用

首先我们可以使用最快的方式创建一个我们的事件,找到App\Providers\EventServiceProvider;

在这个数组

 protected $listen = [
        'App\Events\SomeEvent' => [
            'App\Listeners\EventListener',
        ],
        'App\Events\PupUserchange'=>[
        'App\Handlers\Events\UserManagerd'
        ],
    ];

里面添加自己定义的事件,事件放在App\Events文件夹下面,处理事件的类可以随意定义文件夹,
或者使用laravel自带的App\Listeners文件夹,配置好了之后使用laravel命令
php artisan event:generate
命令回车之后事件就自动生成了。
5.0版本的还可以使用2条命令进行生成事件,还可以分开执行创建事件。
php artisan make:event PupUserchange(事件的类名)
php artisan handler:event UserManagerd(事件处理类) --event=PupUserchange
事件就已经生成了。
事件类PupUserchange .php:
<?php

namespace App\Events;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use App\models\Users;
class PupUserchange extends Event
{
    use SerializesModels;
    public $user;
    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct(Users $users)

    {
        //
        $this->user = $users;
       
    }

    /**
     * Get the channels the event should be broadcast on.
     *
     * @return array
     */
    public function broadcastOn()
    {
        return  [];
    }
}
事件操作-> 事件处理类:

<?php

namespace App\Handlers\Events;

use App\Events\PupUserchange;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\models\Users;
class UserManagerd
{
    /**
     * Create the event handler.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  PupUserchange  $event
     * @return void
     */
    public function handle(PupUserchange $event)
    {
       
        echo "<pre>";
        print_r($event->user->toArray());

    }
}

控制器调用事件:

  Event::fire(new PupUserchange(Users::find(2)));

//事件handle处理结果打印了结果集
Array
(
    [id] => 2
    [name] => gxx
    [email] => admin@admin.com
    [password] => 123456
    [remember_token] => 121545
    [created_at] => -0001-11-30 00:00:00
    [updated_at] => -0001-11-30 00:00:00
)

事件从创建到 处理已经完成了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值