Laravel 4 SQL log / console

后端 未结 8 2140
感动是毒
感动是毒 2020-12-31 05:50

Is there something similar in Laravel that allows you to see the actual SQL being executed? In Rails, for example, you can see the SQL in console. In Django you have a tool

8条回答
  •  傲寒
    傲寒 (楼主)
    2020-12-31 05:58

    This code is directly taken form other source but i wanted to make it easy for you as follow it worked for me on PHPStorm using my terminal window i was able to see a complete log but ,after login there was some Sentry thing.

    1.add

    'log'=>true

    inside your config/database.php and below the place ur database name ex.mysql

    then add below code toroutes.php above all no under any route configuration , since u can make that under a give route configuration but , u only see when that route is called.

    to see this output /goto / app/storage/log/somelogfile.log

    if (Config::get('database.log', false))
    {
        Event::listen('illuminate.query', function($query, $bindings, $time, $name)
        {
            $data = compact('bindings', 'time', 'name');
    
            // Format binding data for sql insertion
            foreach ($bindings as $i => $binding)
            {
                if ($binding instanceof \DateTime)
                {
                    $bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
                }
                else if (is_string($binding))
                {
                    $bindings[$i] = "'$binding'";
                }
            }
    
            // Insert bindings into query
            $query = str_replace(array('%', '?'), array('%%', '%s'), $query);
            $query = vsprintf($query, $bindings);
    
            Log::info($query, $data);
        });
    }
    

    Dont forget to make break point .... or ping me :)

提交回复
热议问题