Laravel Tinker
Laravel Tinker allows you to interact with a database without creating the routes. Laravel tinker is used with a php artisan to create the objects or modify the data. The php artisan is a command-line interface that is available with a Laravel. Tinker is a command tool that works with a php artisan. A tinker plays around the database means that it allows you to create the objects, insert the data, etc.
- To enter the Tinker environment, run the command given below:
php artisan tinker
The above screen shows that the tinker environment has been created.
Creating data
- We can create the records in database tables by using the command-line tool. We use the following statement in the command-line tool that inserts the data directly in the database table:
$post=AppPost::create([‘title’=>’Akshay’,’body’=>’akshay is a software developer’]);
Output
When we execute the above statement, the data gets inserted in a posts table. We can view the inserted data in a phpMyAdmin shown in the below screenshot:
We can also use another way to insert the data by creating an object.
- First, we create the object.
In the above screen, the highlighted line is creating the object, and the name of the object is $post. The $post is the object of the AppPost class.
We can also see whether the $post object has been successfully created or not of a given class by specifying the name of the object in a command-line tool.
The above-highlighted area shows that the $post object has been successfully created as $post shows the name of the class, AppPost.
- After the creation of an object, we will insert the data with the help of an object.
In the above screen, we have assigned the values to the column’s title and body in a posts table by using the statements $post->title and $post->body, respectively. But, still, the data is not inserted in a table. To insert the data in the table, we need to use the statement given below:
$post->save(); // It saves the records in a database table.
When we type the $post in a command-line tool,
The above-highlighted area shows that the record is saved in a posts table
Let’s look at the posts table in phpMyAdmin
Finding Record
We can retrieve the records from the database in three ways:
- The first way is to use the find() method.
- The second way is to use the constraint, i.e., where clause.
In the above screen, we are retrieving the record, which is having an ‘id‘ equal to 1. In this case, we use the first() method as the first() method is used to retrieve the single record.
In the above screen, we are retrieving the records having an id greater than 1. In this case, more than one record is fetched, so we use the get() method. As get() method is used when an array of records is retrieved.
- The third way is to use whereId().
Updating data
In this section, we will learn how to update the data in a database.
Let’s understand through an example.
- First, we find out the object which we want to update.
In the above screen, we have retrieved the second record and stored in a $post object.
- Now we update the values of two columns, title, and body.
- To save the record in a database, we use the save() method.
In the above screen, the save() method returns true, which means that the record has been successfully updated in a database.
Deleting data
Now, we will see how to delete the data from the database table.
Let’s understand through an example.
- As we know that $post is an object that contains the second record, first, we apply the delete() on the $post object.
The above screen shows that the delete() method returns true value, which means that the record has been deleted.
- Now, we will look at the database whether the record having an id equal to 2 is actually deleted or not.
As we can observe from the above screenshot that the record of ‘id’ 2 is still available in the table, but a date is not null in the deleted_at column, which means that this record is soft-deleted.
- To delete the record permanently,
In the above screen, we use $post->onlyTrashed() means that the $post object contains only a trashed record.
To delete the trashed record permanently, we use the forceDelete() method on a $post object.
The above screen shows that the forceDelete() method returns a true value, which means that the record is successfully removed from the table.
Let’s look at the database:
In the above screenshot, we observe that the record of ‘id‘ 2 is deleted from the posts table.
Relationship with tinker
Till now, we find the relationship by using routes. Now, we will see the relationship through the tinker. In a laravel relationship topic, we read a one-to-one relationship with the help of the routes in which we find the post belonging to every user. Now, we find the post of every user in the tinker environment.
Let’s understand through an example.
- First, we look at the data available in both the tables, users and posts table.
users table
posts table
- In this step, we will find the user.
In the above screenshot, we observe that the $user object contains the second user, i.e., a record of ‘id’ equal to 2 in the ‘users‘ table.
- Now, we implement the posts() method available in the User model through the $user object. The statement ‘$user->posts‘ calls the posts method of a User class.
The above screen shows that the statement ‘$user->posts‘ retrieves the post of the user from the ‘posts‘ table.