使用Event捕获受查询影响的行

时间:2017-07-10 14:40:36

标签: php mysql laravel laravel-5 laravel-events

我正在尝试编写一个事件,该事件将显示查询影响的行数。

我找到了Illuminate \ Database \ Events \ QueryExecuted事件。我为事件添加了一个监听器,并在事件服务提供者中注册了它:

EventServiceProvider.php

<?php
namespace App\Providers;
use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;


 class EventServiceProvider extends ServiceProvider
    {
        /**
         * The event listener mappings for the application.
         *
         * @var array
         */
        protected $listen = [
            'Illuminate\Database\Events\QueryExecuted' => [
            'App\Listeners\QueryExecutedListener@handle'
                ],
        ];
        /**
         * Register any other events for your application.
         *
         * @param  \Illuminate\Contracts\Events\Dispatcher  $events
         * @return void
         */
        public function boot(DispatcherContract $events)
        {
            parent::boot($events);
            //
        }

}

在我的handle方法中,我可以看到正在运行的查询:

public function handle(QueryExecuted $event)
        {

            var_dump($event);

        }

但是,我无法找到查看运行更新/删除了多少行的方法。

我很感激任何建议。

1 个答案:

答案 0 :(得分:-2)

Laravel应用程序附带的EventServiceProvider提供了一个方便的位置来注册所有应用程序的事件监听器。

https://laravel.com/docs/5.4/events