Laravel এর সাথে Eloquent ORM ব্যবহার

PHP এবং MySQL এর মধ্যে ORM Integration - পিএইচপি মাইএসকিউএল আই (PHP MySQL) - Database Tutorials

291

Laravel একটি শক্তিশালী পিএইচপি ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে। Eloquent ORM (Object-Relational Mapping) হল Laravel এর একটি অত্যন্ত শক্তিশালী ফিচার, যা ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে পিএইচপি অবজেক্ট ওরিয়েন্টেড পদ্ধতির মাধ্যমে সহজ করে তোলে। এটি ডেটাবেসের টেবিলের সাথে সরাসরি সম্পর্কিত মডেল ক্লাস তৈরি করে, যাতে ডেটাবেস অপারেশনগুলো (যেমন, সিলেক্ট, ইনসার্ট, আপডেট, ডিলিট) করা সহজ হয়।

Eloquent ORM কী?

Eloquent ORM হল Laravel এর ডেটাবেস ইন্টারঅ্যাকশন সিস্টেম, যা SQL কোডের পরিবর্তে পিএইচপি কোডে মডেল ব্যবহার করে ডেটাবেসের সাথে কাজ করতে সহায়তা করে। Eloquent একটি ActiveRecord ইমপ্লিমেন্টেশন, যেখানে প্রতিটি মডেল একটি টেবিলের প্রতিনিধিত্ব করে এবং মডেল অবজেক্টের মাধ্যমে টেবিলের রেকর্ডগুলি পরিচালনা করা হয়।

Eloquent ORM এর সুবিধাসমূহ

  • সহজ সিনট্যাক্স: SQL এর পরিবর্তে পিএইচপি কোডে ডেটাবেস অপারেশন করতে সুবিধা হয়।
  • ডেটাবেস সম্পর্ক: Eloquent এর মাধ্যমে সহজেই টেবিলগুলোর মধ্যে সম্পর্ক তৈরি করা যায় (যেমন, One-to-One, One-to-Many, Many-to-Many)।
  • ডেটাবেস মাইগ্রেশন: Eloquent ডেটাবেস স্কিমা ম্যানেজমেন্টের জন্য Laravel এর মাইগ্রেশন টুল ব্যবহার করে, যা ডেটাবেস পরিবর্তন সহজ করে।

Laravel এ Eloquent ORM এর সাথে কাজ করা

১. মডেল তৈরি করা

Laravel এ Eloquent ORM ব্যবহার করতে, প্রথমে আপনাকে একটি মডেল তৈরি করতে হবে। মডেল সাধারণত একটি টেবিলের সাথে যুক্ত থাকে এবং সেই টেবিলের ডেটা পরিচালনা করতে ব্যবহৃত হয়।

মডেল তৈরি করা:

php artisan make:model Post

এটি app/Models/Post.php ফাইল তৈরি করবে। এই মডেলটি posts টেবিলের সাথে যুক্ত থাকবে যদি আপনি মডেলটির নাম বহুবচনে রাখেন (যেমন, Post এবং টেবিল posts)।

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    // টেবিলের নাম (যদি টেবিলের নাম মডেলের নামের সাথে মেলে না)
    protected $table = 'posts';
    
    // পূর্ণ-প্রতিক্রিয়া, যেমন কী কী কলাম মডেল দিয়ে আপডেট বা ইনসার্ট হবে
    protected $fillable = ['title', 'content', 'author_id'];
}

এখানে Post মডেলটি posts টেবিলের ডেটাকে হ্যান্ডেল করবে। $fillable প্রোপার্টি ব্যবহার করে আপনি নির্দিষ্ট কলামগুলোকে মডেলের মাধ্যমে mass assignment করতে পারবেন।


২. ডেটাবেসে রেকর্ড যোগ করা

Eloquent ORM ব্যবহার করে ডেটাবেসে নতুন রেকর্ড ইনসার্ট করতে খুবই সহজ।

use App\Models\Post;

// নতুন পোস্ট তৈরি করা
$post = new Post();
$post->title = "My First Post";
$post->content = "This is the content of my first post.";
$post->author_id = 1;
$post->save();  // রেকর্ডটি ডেটাবেসে সেভ হবে

এছাড়া এক লাইন কোডে রেকর্ড ইনসার্টও করা যেতে পারে:

Post::create([
    'title' => 'Another Post',
    'content' => 'Content of another post',
    'author_id' => 1
]);

এখানে create() মেথডের মাধ্যমে ডেটাবেসে নতুন রেকর্ড ইনসার্ট করা হচ্ছে।


৩. ডেটাবেস থেকে রেকর্ড পড়া

Eloquent ORM ব্যবহার করে ডেটাবেস থেকে রেকর্ড পড়াও অত্যন্ত সহজ। নিচে বিভিন্ন উপায়ে রেকর্ড ফেচ করার কিছু উদাহরণ দেওয়া হলো:

সব রেকর্ড পড়া:

$posts = Post::all();  // সব পোস্ট রেকর্ড পড়বে

কিছু শর্তে রেকর্ড ফেচ করা:

$posts = Post::where('author_id', 1)->get();  // author_id 1 এর পোস্টগুলো ফেচ করবে

একটি নির্দিষ্ট রেকর্ড পড়া (যেমন, আইডি দিয়ে):

$post = Post::find(1);  // আইডি 1 এর পোস্ট পড়বে

৪. ডেটাবেসে রেকর্ড আপডেট করা

যদি কোনো রেকর্ড আপডেট করতে হয়, তবে মডেলের মাধ্যমে সহজেই সেটি করা যায়:

$post = Post::find(1);  // আইডি 1 এর পোস্ট খুঁজে পাওয়া
$post->title = "Updated Title";
$post->save();  // রেকর্ডটি আপডেট হয়ে যাবে

এছাড়া update() মেথডও ব্যবহার করা যেতে পারে:

Post::where('id', 1)->update(['title' => 'Updated Title']);

৫. ডেটাবেস থেকে রেকর্ড ডিলিট করা

ডেটাবেস থেকে রেকর্ড ডিলিট করার জন্য Eloquent ORM ব্যবহার করা খুবই সহজ:

$post = Post::find(1);  // আইডি 1 এর পোস্ট খুঁজে পাওয়া
$post->delete();  // রেকর্ডটি ডিলিট হবে

এছাড়া destroy() মেথডও ব্যবহার করা যেতে পারে:

Post::destroy(1);  // আইডি 1 এর পোস্ট ডিলিট হবে

Eloquent ORM এ সম্পর্ক (Relationships)

Eloquent ORM এ বিভিন্ন ধরণের সম্পর্ক (relationship) পরিচালনা করা সম্ভব। Laravel এর মধ্যে সাধারণত ব্যবহৃত সম্পর্কগুলো হল:

  • One-to-One: একটি মডেল আরেকটি মডেলের সাথে সম্পর্কিত থাকে।
  • One-to-Many: একটি মডেল অনেকগুলো মডেলের সাথে সম্পর্কিত থাকে।
  • Many-to-Many: একাধিক মডেল একাধিক মডেলের সাথে সম্পর্কিত থাকে।

উদাহরণ: One-to-Many সম্পর্ক:

ধরা যাক, একজন লেখক (Author) এর অনেক পোস্ট (Post) থাকতে পারে। এখানে আমরা Author এবং Post মডেল তৈরী করব।

// Author মডেল
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

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

// Post মডেল
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    public function author()
    {
        return $this->belongsTo(Author::class);
    }
}

এখানে Author মডেল hasMany মেথড ব্যবহার করে Post মডেলের সাথে সম্পর্ক তৈরি করেছে এবং Post মডেল belongsTo মেথড ব্যবহার করে Author মডেলের সাথে সম্পর্ক তৈরি করেছে।


সারাংশ

Laravel এর Eloquent ORM হল একটি শক্তিশালী এবং সহজ পদ্ধতি ডেটাবেস ইন্টারঅ্যাকশনের জন্য। এটি ডেটাবেস অপারেশনগুলোকে পিএইচপি কোডে খুব সহজ এবং পাঠযোগ্য করে তোলে। Eloquent ব্যবহার করে মডেল তৈরি, রেকর্ড ইনসার্ট, রিট্রিভ, আপডেট এবং ডিলিট করা সহজ হয় এবং ডেটাবেস সম্পর্কগুলো খুব স্বাভাবিকভাবে পরিচালনা করা যায়। Laravel এ Eloquent ORM এর মাধ্যমে ডেটাবেস অপারেশনগুলো খুবই কার্যকরী এবং ডেভেলপারদের জন্য অত্যন্ত সুবিধাজনক।

Content added By
Promotion

Are you sure to start over?

Loading...