• Как сделать динамическое логирование в Laravel?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Что либо писать руками - это спагетти.
    Суть ларавеля в том, что все делается автоматом

    В данном случае делается middleware,

    <?php
    
    namespace App\Http\Middleware;
    
    use Closure;
    use \Illuminate\Http\Request;
    
    class UserActivityLoggerMiddleware
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle(Request $request, Closure $next)
        {
            // тут пишешь свое логирование
           $user_id = $request->user()->id;
           $action = $request->route()->getName();
            // обяязательная строчка
            return $next($request);
        }
    }

    регистрируешь в Kernel.php
    'logger' => \App\Http\Middleware\UserActivityLoggerMiddleware::class,


    и рауты пользователей заключаешь в вызов этой мидлвари

    Route::group(['middleware' => ['logger']], function()
    {
    }
    Ответ написан
    7 комментариев