Getting Started with Laravel : Laravel Eloquent Relationships - SkillBakery Studios

Breaking

Post Top Ad

Post Top Ad

Monday, July 13, 2026

Getting Started with Laravel : Laravel Eloquent Relationships

Getting Started with Laravel : Laravel Eloquent Relationships

Screenshot from the tutorial
Screenshot from the tutorial

Getting Started with Laravel: Eloquent Relationships

Laravel is one of the most popular PHP frameworks, known for its elegant syntax and robust features. One of the key components of Laravel is Eloquent, its ORM (Object-Relational Mapping) system, which simplifies database interactions. In this blog post, we'll explore Eloquent relationships, a powerful feature that allows you to define relationships between different models in your application.

What are Eloquent Relationships?

Eloquent relationships provide a way to define connections between different database tables. These relationships allow you to easily retrieve related data, reducing the amount of SQL you need to write and enhancing code readability. Laravel supports several types of relationships:

  • One-to-One
  • One-to-Many
  • Many-to-Many
  • Has Many Through
  • Polymorphic Relations

In this tutorial, we’ll cover the most commonly used relationships: One-to-One and One-to-Many.

Setting Up Your Models

Before we dive into relationships, let’s set up a simple example. Suppose we have two models: User and Post. A user can have many posts, while each post belongs to a single user.

Step 1: Creating the Models

Run the following Artisan commands to create your models:

php artisan make:model User -m
php artisan make:model Post -m

This will create both models and their corresponding migration files.

Step 2: Defining the Migrations

Open the migration files and define the structure of your tables.

User Migration:

// database/migrations/xxxx_xx_xx_create_users_table.php

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamps();
    });
}

Post Migration:

// database/migrations/xxxx_xx_xx_create_posts_table.php

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->foreignId('user_id')->constrained()->onDelete('cascade');
        $table->string('title');
        $table->text('content');
        $table->timestamps();
    });
}

Step 3: Running the Migrations

Run the migrations to create the necessary tables in your database:

php artisan migrate

Defining Relationships in Models

Now that we have our models and tables set up, let's define the relationships in our User and Post models.

One-to-Many Relationship

In the User model, add a method to define the relationship:

// app/Models/User.php

public function posts()
{
    return $this->hasMany(Post::class);
}

In the Post model, add a method to define the inverse of the relationship:

// app/Models/Post.php

public function user()
{
    return $this->belongsTo(User::class);
}

One-to-One Relationship Example

If you want to define a one-to-one relationship, you can imagine a scenario where a user has one profile. You would create a Profile model and define the relationships similarly:

In the User model:

public function profile()
{
    return $this->hasOne(Profile::class);
}

In the Profile model:

public function user()
{
    return $this->belongsTo(User::class);
}

Retrieving Related Models

With the relationships defined, you can now easily retrieve related models.

Fetching User Posts

To get all posts for a specific user:

$user = User::find(1);
$posts = $user->posts; // This will fetch all posts associated with user ID 1

Fetching User from a Post

To get the user associated with a specific post:

$post = Post::find(1);
$user = $post->user; // This will fetch the user that owns post ID 1

Conclusion

Eloquent relationships in Laravel provide a powerful way to interact with your database. By defining relationships between models, you can streamline your code and make it more maintainable. In this tutorial, we covered the basics of One-to-Many and One-to-One relationships.

Experiment with different relationship types to fully leverage the power of Eloquent in your Laravel applications. Happy coding!

Another screenshot from the tutorial
Another view from the tutorial

Connect with SkillBakery Studios

Explore more tutorials, tools, and resources:

Posted by SkillBakery Studios

No comments:

Post a Comment

Post Top Ad