Do you want to know how to use Laravel Tinker? Using Tinker you can interact with your Laravel application through the command line. Laravel Tinker is powered by the PsySH package. In this article, I show you how to use Laravel Tinker.
Laravel is one of the most popular frameworks which is built in PHP. If you like a clean and neat code then Laravel should be your choice for building a web application. It comes with fantastic built-in features like Artisan commands, Eloquent ORM, Broadcasting etc. Tinker is also one of the useful features included in the core of Laravel.
Tinker is a REPL(read-eval-print loop). REPL allows users to interact with the application through the command line. It’s commonly used for interaction with Eloquent ORM, jobs, events, and more.
Why Need of Using Tinker in Laravel?
There are several scenarios where a user can use a Tinker. For instance, you need to add records in your database and you don’t have access to it. In such a case, you can interact with the database through Tinker. Even you can update, delete records in the database.
Tinker allows you to write PHP code in the command line.
How to Use Laravel Tinker
When you install Laravel, you got Tinker by default. The users don’t need to install Tinker separately. However, you may install it manually if needed using the command:
composer require laravel/tinker
To demonstrate the use of Tinker, let’s assume you have a table ‘products’ in the database. This table contains the columns name, description, etc.
Now we are going to insert a row in the ‘products’ table using the Laravel Tinker.
Open the command prompt in the root directory of your Laravel project. First, create a model that interacts with the table ‘products’.
php artisan make:model Product
This command creates a model Product.php
under the ‘app’ directory.
Next, to enter into the Tinker mode run the below command.
php artisan tinker
I will use the Eloquent ORM to insert a row in the ‘products’ table. So my code will be as follows in the command line.
$p = new App\Product; $p->name = 'Test Product'; $p->description = 'Test Product Body'; $p->save();
The above commands will insert a new row in the ‘products’ table.
The user can delete the record using the code below in a command line.
$p = App\Product::find(1); //here '1' is the product id $p->delete();
Note: To come out of the Tinker, type ‘Exit’ and press Enter.
You can also call controller functions through Tinker. Let’s say you have below methods in the ProductController.php
file.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ProductController extends Controller { public function index() { return 'index'; } public function show($id) { return $id; } public function details($name, $id) { return 'name: '. $name .'---id: '. $id; } }
Now, to call these methods write the below code in Tinker.
$controller = app()->make('App\Http\Controllers\ProductController'); app()->call([$controller, 'index'], []); app()->call([$controller, 'show'], ['id' => 123']); app()->call([$controller, 'details'], ['name' => 'John Doe', 'id' => '10']);
I hope you understand the basics of using a Tinker in Laravel. I would like to hear your thoughts and suggestions in the comment section below.
Related Articles
- How to Create a Blog with Laravel
- Backup Laravel Application on Dropbox
- How to Upload Video on YouTube in Laravel Application
If you liked this article, then please subscribe to our YouTube Channel for video tutorials.
how can i create a copy function in the controller, and use it in tinker ???
It was nice article for learning the concept of Tinker feature of Laravel.
Thanks