Blog de programación, errores, soluciones

Chose Language:
Author: Admin/Publisher |not checked

Que es y como usar Laravel Tinker

¿Que es Laravel Tinker?

Tinker viene con laravel por defecto, este nos permite interactuar con toda la aplicación que estemos creando a través de la linea de comandos, esto es buen de echo es muy bueno.

Genial, pero que es realmente. Bueno tinker esta realizado con psysh, este es una runtime developer console, interactive debugger and REPL for PHP. De lo cual tinker toma la parte REPL (bucle Lectura-Evaluación-Impresión) para hacer consultas rápidas sin tener que correr el programa entero.

¿Como uso Tinker?

para correr tinker solo necesita correr el siguiente comando en consola:

Project Folder
php artisan tinker

yo uso la consola bash de git pero puede usar la consola de windows

Una vez dentro de tinker puede hacer consultas incluso insertar datos a través de esta, este resulta efectivo para testear por ejemplo una consulta antes de ir escribirla en el controlador levantar php artisan serve y todo eso resulta muy fácil correr el comando aquí.

Ahora corramos alguna consulta en thinker, para este ejemplo usare la misma base de datos que use en la introducción a eloquent. Por tanto tendre un Model Cliente y la base de datos example.

los datos que tengo son los siguientes.

Casi todo es aplicable en tinker, así que veamos unos ejemplos de eloquent.

probemos traer todos los clientes con todos sus datos

\App\Cliente::all();

El resultado sera el siguiente:

Tinker>>>
>>> \App\Cliente::all();
=> Illuminate\Database\Eloquent\Collection {#2950
     all: [
       App\Cliente {#2951
         id: 1,
         nombre: "Jose",
         apellido: "Garcia",
         telefono: "09737483",
         direccion: "Peru 1978",
       },
       App\Cliente {#2952
         id: 2,
         nombre: "Maria",
         apellido: "Gonzales",
         telefono: "09987624",
         direccion: "Peru 1978",
       },
       App\Cliente {#2953
         id: 3,
         nombre: "Jose",
         apellido: "Garcia",
         telefono: "09737483",
         direccion: "Peru 1978",
       },
       App\Cliente {#2954
         id: 4,
         nombre: "Maria",
         apellido: "Gonzales",
         telefono: "09987624",
         direccion: "Peru 1978",
       },
       App\Cliente {#2955
         id: 5,
         nombre: "Marcos",
         apellido: "Aloicio",
         telefono: "090584152",
         direccion: "Ansina 901",
       },
       App\Cliente {#2956
         id: 6,
         nombre: "Lorenzo",
         apellido: "Esquer",
         telefono: "09987633",
         direccion: "Ansina 901",
       },
     ],
   }

Probemos seleccionar algunos, Aqui veo 2 con el nombre Jose traigamos esos registros.

\App\Cliente::where('nombre','Jose')->get();

Y obtendremos lo siguiente:

Tinker>>>
>>> \App\Cliente::where('nombre','Jose')->get();
=> Illuminate\Database\Eloquent\Collection {#2942
     all: [
       App\Cliente {#2944
         id: 1,
         nombre: "Jose",
         apellido: "Garcia",
         telefono: "09737483",
         direccion: "Peru 1978",
       },
       App\Cliente {#2945
         id: 3,
         nombre: "Jose",
         apellido: "Garcia",
         telefono: "09737483",
         direccion: "Peru 1978",
       },
     ],
   }
>>>

Hagamos otra cosa contemos los usuarios que tenemos aquí:

\App\Cliente::count();

El resultado:

Tinker>>>
>>> \App\Cliente::count();
=> 6

Por ultimo antes de terminar este tema, borremos uno de los datos repetidos que vimos antes.

\App\Cliente::find(3)->delete();

Con delete podremos borrar el usuario con id 3 el cual es seleccionado con find

Tinker>>>
>>> \App\Cliente::find(3)->delete();
=> true

El resultado es true ya pudo realizar la tare con exito.

Porque usar Tinker?

El usarlo ahorra tiempo al desarrollar.

lo puede usar como método de testear antes de ingresar el código.

probar las consultas de esta manera puede ser beneficioso, ya que podemos chequear datos de forma rápida de la base de datos.

Category: laravel
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category