Eloquent ORM (Object Relational Mapping) in Laravel

Eloquent is the ORM (Object-Relational Mapping) included with Laravel. It provides a simple and expressive way to interact with your database by representing database tables as PHP objects. This makes it easier to work with databases in a more natural and object-oriented way.

Create the Model:

In your terminal, run the following command to create a model named Task:

php artisan make:model Task -m

This will create a Task.php file in the app directory and a migration file for creating the corresponding database table.

  1. Define the Model:

Open the Task.php file located in app/Models (or app if you’re not using Laravel 8+ with separate Models directory), and define the model like this:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Task extends Model
{
    use HasFactory;

    protected $fillable = ['title', 'description']; // Specify which attributes can be mass assigned

    // Additional methods or relationships can be defined here
}

In this example, we’ve defined a Task model. It extends Model, which is the base Eloquent model provided by Laravel. The HasFactory trait is used to provide factory support for the model.

Create the Migration:

In the database/migrations directory, you’ll find a migration file created for the tasks table. Define the table’s schema in the up() method.

public function up()
{
    Schema::create('tasks', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('description');
        $table->timestamps();
    });
}

Run the migration:

php artisan migrate

Using the Model:

Now you can use the Task model to interact with the tasks table. For example:

// Create a new task
$task = Task::create([
    'title' => 'Sample Task',
    'description' => 'This is a sample task description.'
]);

// Retrieve a task
$task = Task::find(1);

// Update a task
$task->title = 'Updated Task Title';
$task->save();

// Delete a task
$task->delete();

Thanks for reading

Hi I am Amit Kumar Thakur Experienced as s Software Developer with a demonstrated history of working in the information technology and services industry. Skilled in HTML, CSS, Bootstrap4, PHP, Laravel-9 , REST API,FB API,Google API, Youtube Api, Bitbucket,Github,Linux and jQuery. Strong engineering professional focused in Computer/Information Technology Administration and Management. Currently my profile is to Software Developer, analyze the requirement, creating frame for web application, coding and maintenance.

Related Posts

How to Crawl any website Meta Title and Meta Description in Laravel ?

1st step install below package. Next to create Controller First go to route and put below code Next go to controller and put below code Next go…

SQLSTATE[HY000] [2002] No such file or directory (Connection: mysql, SQL: insert into `oauth_clients` (`user_id`, `name`, `secret`

In this tutorial i’m going to solve the error SQLSTATE[HY000] [2002] No such file or directory (Connection: mysql, SQL: insert into oauth_clients (user_id, name, secret Error :-…

Top 20 Laravel Interview Question in 2024

In this tutorial im going share interview experience For laravel developer. A list of top frequently asked Laravel Interview Questions and answers are given below. Q #1) What is…

How to Get Google Analytics API key ?

In this tutorial we’re going to share how to get the google Analytics API key. I have shared in very easy way. First go enable Google analytics…

Youtube Subscriber Count in ReactJs

In this tutorial i’m going to learn how to count YouTube Subsribers count, views count as well, as define below. In order to install your app, first…

How to Disable Laravel’s Eloquent timestamps in laravel ?

In this tutorial we’re going to share how to disable the automatic created_at and updated_at timestamps in Laravel’s Eloquent models, along with explanations of different scenarios: 1st…

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x