Laravel Eloquent ORM in Bangla Part-1(Generating Model Classes)

Eloquent: Generating Model Classes হলো Laravel-এ ডাটাবেস টেবিলের সাথে ইন্টার‌্যাক্ট করার জন্য মডেল ক্লাস তৈরির একটি প্রক্রিয়া। Eloquent ORM (Object-Relational Mapper) ব্যবহার করে আপনি ডাটাবেস টেবিল থেকে সহজে ডেটা রিড, ক্রিয়েট, আপডেট এবং ডিলিট করতে পা…


This content originally appeared on DEV Community and was authored by Sontus Chandra Anik

Eloquent: Generating Model Classes হলো Laravel-এ ডাটাবেস টেবিলের সাথে ইন্টার‌্যাক্ট করার জন্য মডেল ক্লাস তৈরির একটি প্রক্রিয়া। Eloquent ORM (Object-Relational Mapper) ব্যবহার করে আপনি ডাটাবেস টেবিল থেকে সহজে ডেটা রিড, ক্রিয়েট, আপডেট এবং ডিলিট করতে পারেন।

Model Class তৈরি করার পদ্ধতি

১. Artisan কমান্ড ব্যবহার করে Model তৈরি করা

Laravel-এর artisan CLI ব্যবহার করে মডেল ক্লাস তৈরি করা হয়। নিচের কমান্ডটি রান করুন:

php artisan make:model ModelName

উদাহরণস্বরূপ, একটি Post নামে মডেল তৈরি করতে:

php artisan make:model Post

এটি app/Models ডিরেক্টরির মধ্যে একটি Post.php ফাইল তৈরি করবে।

মডেলের বেসিক কাঠামো

মডেলটি সাধারণত এরকম দেখতে হবে:

namespace App\Models;

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

class Post extends Model
{
    use HasFactory;
}

২. মাইগ্রেশন ফাইল সহ মডেল তৈরি করা

মডেল এবং ডাটাবেস মাইগ্রেশন একসাথে তৈরি করতে নিচের কমান্ড ব্যবহার করুন:

php artisan make:model Post -m

এটি দুটি জিনিস তৈরি করবে:

  1. Post মডেল।
  2. database/migrations/2025_01_05_000000_create_posts_table.php নামে একটি মাইগ্রেশন ফাইল।

৩. মডেলের সাথে Factory এবং Seeder তৈরি করা

Factory এবং Seeder ফাইল সহ মডেল তৈরি করতে:

php artisan make:model Post -mfsc

  • m: মাইগ্রেশন তৈরি করবে।
  • f: ফ্যাক্টরি তৈরি করবে।
  • s: সিডার তৈরি করবে।
  • c: কন্ট্রোলার তৈরি করবে।

মডেলে ডাটাবেস টেবিলের সাথে সম্পর্ক

১. ডিফল্ট টেবিল নাম

Laravel মডেল ক্লাসের নাম অনুযায়ী ডাটাবেস টেবিলের নাম ধরে নেয়।
যেমন:

  • Post মডেলের ডিফল্ট টেবিল হবে posts
  • User মডেলের ডিফল্ট টেবিল হবে users

যদি আপনি কাস্টম টেবিল ব্যবহার করতে চান, তাহলে মডেলে $table প্রোপার্টি সেট করুন:

class Post extends Model
{
    protected $table = 'blog_posts';
}

মডেলের গুরুত্বপূর্ণ প্রোপার্টি এবং মেথড

১. $fillable এবং $guarded

ডেটাবেসে কোন কোন ফিল্ডে ডেটা ইনসার্ট করা যাবে তা নির্ধারণ করতে $fillable বা $guarded ব্যবহার করা হয়।

  • $fillable: নির্ধারিত ফিল্ডগুলোতে ডেটা ইনসার্ট করা যাবে।
class Post extends Model
{
    protected $fillable = ['title', 'content'];
}

  • $guarded: নির্ধারিত ফিল্ডগুলোতে ডেটা ইনসার্ট করা যাবে না।
class Post extends Model
{
    protected $guarded = ['id'];
}

২. $primaryKey

যদি আপনার টেবিলের প্রাইমারি কী id ছাড়া অন্য কিছু হয়:

class Post extends Model
{
    protected $primaryKey = 'post_id';
}

৩. $timestamps

Laravel টেবিলের created_at এবং updated_at কলাম ডিফল্ট হিসেবে ব্যবহার করে। যদি এগুলো ব্যবহার করতে না চান:

class Post extends Model
{
    public $timestamps = false;
}

৪. সম্পর্ক (Relationships)

Eloquent সম্পর্ক ব্যবহারে মডেল একে অপরের সাথে যুক্ত করা যায়।

  • এক থেকে এক সম্পর্ক (One-to-One):
public function user()
{
    return $this->hasOne(User::class);
}

  • এক থেকে অনেক সম্পর্ক (One-to-Many):
public function comments()
{
    return $this->hasMany(Comment::class);
}

  • অনেক থেকে অনেক সম্পর্ক (Many-to-Many):
public function tags()
{
    return $this->belongsToMany(Tag::class);
}


This content originally appeared on DEV Community and was authored by Sontus Chandra Anik


Print Share Comment Cite Upload Translate Updates
APA

Sontus Chandra Anik | Sciencx (2025-01-05T05:45:31+00:00) Laravel Eloquent ORM in Bangla Part-1(Generating Model Classes). Retrieved from https://www.scien.cx/2025/01/05/laravel-eloquent-orm-in-bangla-part-1generating-model-classes/

MLA
" » Laravel Eloquent ORM in Bangla Part-1(Generating Model Classes)." Sontus Chandra Anik | Sciencx - Sunday January 5, 2025, https://www.scien.cx/2025/01/05/laravel-eloquent-orm-in-bangla-part-1generating-model-classes/
HARVARD
Sontus Chandra Anik | Sciencx Sunday January 5, 2025 » Laravel Eloquent ORM in Bangla Part-1(Generating Model Classes)., viewed ,<https://www.scien.cx/2025/01/05/laravel-eloquent-orm-in-bangla-part-1generating-model-classes/>
VANCOUVER
Sontus Chandra Anik | Sciencx - » Laravel Eloquent ORM in Bangla Part-1(Generating Model Classes). [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/01/05/laravel-eloquent-orm-in-bangla-part-1generating-model-classes/
CHICAGO
" » Laravel Eloquent ORM in Bangla Part-1(Generating Model Classes)." Sontus Chandra Anik | Sciencx - Accessed . https://www.scien.cx/2025/01/05/laravel-eloquent-orm-in-bangla-part-1generating-model-classes/
IEEE
" » Laravel Eloquent ORM in Bangla Part-1(Generating Model Classes)." Sontus Chandra Anik | Sciencx [Online]. Available: https://www.scien.cx/2025/01/05/laravel-eloquent-orm-in-bangla-part-1generating-model-classes/. [Accessed: ]
rf:citation
» Laravel Eloquent ORM in Bangla Part-1(Generating Model Classes) | Sontus Chandra Anik | Sciencx | https://www.scien.cx/2025/01/05/laravel-eloquent-orm-in-bangla-part-1generating-model-classes/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.