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 Folderphp 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.
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.