mardi 6 octobre 2015

Request data lost in queued listener Laravel 5.1

I have an activity log listener attached to 'auth.login' event.

#ActivityLogListener

namespace App\Listeners;

use Log;
use Carbon\Carbon;
use App\Activity_log;
use Illuminate\Http\Request;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

class UpdateActivityLog implements ShouldQueue
{
    protected $request;

    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct(Request $request)
    {
        $this->request = $request;
    }

    /**
     * Handle the event.
     *
     * @param  EventDelete  $event
     * @return void
     */
    public function handle($user)
    {

        // Add to Activity Log
        Activity_log::create([
                 'user_id' => $user->id, 
                 'path'  => $this->request->path(),
                 'data'  => serialize($this->request->all()),
                 'method' => $this->request->method(),
                 'ip'    => $this->request->ip()
             ]);

        // Update user last activity
        $user->last_activity = Carbon::now();

        $user->update();

    }

Everything worked fine until I implemented ShouldQueue interface.

Is the request data lost after the request is complete?

How can i retain this data? I dont want this listener to obstruct the request.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire