Laravel es conveniente para depurar e imprimir la vista de registro SQL

En el desarrollo real, necesitamos verificar si el SQL ensamblado es lo que necesitamos Para ver el resultado, imprimimos directamente el SQL.

Utilice el método getQueryLog que viene con DB para imprimir directamente:

 

utilice Illuminate \ Support \ Facades \ DB;
DB :: conexión () -> enableQueryLog (); // 开启 QueryLog 2 \ App \ User :: find (1); 3 volcado (DB :: getQueryLog ());

Salida;

Obtenga los siguientes resultados, no visualice intuitivamente:

  matriz: 1 [
    0 => matriz: 3 [
      "consulta" => "seleccionar * de` fook_platform_ordercode` donde `fook_platform_ordercode``id` =? límite 1"
      "bindings" => matriz: 1 [
        0 => 1
      ]
      "tiempo" => 11.47
    ]
  ]

Ahora usamos otro método para imprimir la declaración SQL completa y copiamos el siguiente código en el método de arranque en AppServiceProvider:

el código se muestra a continuación:
\ DB :: listen ( 
    function ($ sql) { 
        foreach ($ sql-> enlaces como $ i => $ enlace) { 
            if ($ instancia de enlace de \ DateTime) { 
                $ sql-> enlaces [$ i] = $ enlace- > formato ('\' Ymd H: i: s \ ''); 
            } else { 
                if (is_string ($ binding)) { 
                    $ sql-> bindings [$ i] = "'$ binding'"; 
                } 
            } 
        } 

        / / Insertar enlaces en la consulta 
        $ query = str_replace (array ('%', '?'), Array ('%%', '% s'), $ sql-> sql); 

        $ query = vsprintf ($ query, $ sql-> bindings); 

        // Guarde la consulta en un archivo 
        $ logFile = fopen (
            ruta_almacenamiento ('logs'. DIRECTORY_SEPARATOR. date ('Ym-d'). '_query.log'), 
            'a +' 
        ); 
        fwrite ($ logFile, date ('Ymd H: i: s'). ':'. $ consulta. PHP_EOL); 
        fclose ($ logFile); 
    } 
);

Entonces el registro impreso está en

Supongo que te gusta

Origin blog.csdn.net/lchmyhua88/article/details/107298222
Recomendado
Clasificación