مارک پلاس

تکنولوژی نوین اینترنتی

مفهوم Eloquent ORM در لاراول

دسته‌بندی‌ها

مفهوم Eloquent ORM در لاراول
مفهوم Eloquent ORM در لاراول

مفهوم Eloquent ORM در لاراول یکی از ارکان اصلی این فریم‌ورک محسوب می‌شود. در این مقاله به‌صورت جامع و روان مفهوم، کاربرد و قابلیت‌های Eloquent را بررسی می‌کنیم:


🔍 Eloquent ORM چیست؟

Eloquent یک ORM (Object Relational Mapper) اختصاصی برای فریم‌ورک Laravel است. این ابزار به شما اجازه می‌دهد با پایگاه داده مثل آبجکت‌ها و مدل‌ها کار کنید، به‌جای نوشتن مستقیم کوئری‌های SQL.

به زبان ساده، هر جدول دیتابیس معادل یک کلاس مدل در Laravel است، و رکوردهای آن جدول، نمونه‌هایی (Object) از آن کلاس هستند.


⚙️ ویژگی‌های اصلی Eloquent

✅ ارتباط مستقیم با دیتابیس بدون نوشتن SQL
✅ استفاده از متدها برای CRUD
✅ تعریف روابط بین مدل‌ها (One to One, One to Many, Many to Many)
✅ قابلیت تعریف Query Scopes
✅ استفاده از Accessor و Mutator برای تغییر مقدار فیلدها
✅ پشتیبانی از Soft Deletes، Timestamps و Casting


🏗 مثال ساده: تعریف یک مدل

فرض کنیم یک جدول به نام posts داریم:

bash
php artisan make:model Post -m

فایل مدل در مسیر app/Models/Post.php ساخته می‌شود:

php
class Post extends Model { protected $fillable = ['title', 'body']; }

و Migration:

php
Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('body'); $table->timestamps(); });

📤 عملیات CRUD در Eloquent

ایجاد داده (Create)

php
Post::create([ 'title' => 'Hello Laravel', 'body' => 'This is an Eloquent example.' ]);

خواندن داده (Read)

php
$posts = Post::all(); // همه پست‌ها $post = Post::find(1); // پست با ID خاص

بروزرسانی (Update)

php
$post = Post::find(1); $post->title = 'Updated title'; $post->save();

حذف (Delete)

php
Post::destroy(1);

🔗 تعریف روابط بین مدل‌ها

One to Many (یک به چند)

در مدل User:

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

در مدل Post:

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

🎛️ Query Scopes

php
// مدل public function scopeActive($query) { return $query->where('status', 'active'); } // استفاده Post::active()->get();

🧙 Accessor و Mutator

php
// Accessor public function getTitleAttribute($value) { return strtoupper($value); } // Mutator public function setTitleAttribute($value) { $this->attributes['title'] = ucfirst($value); }

🧽 Soft Deletes

bash
php artisan make:migration add_deleted_at_to_posts --table=posts

در مدل:

php
use Illuminate\Database\Eloquent\SoftDeletes; class Post extends Model { use SoftDeletes; }

⏳ زمان‌بندی خودکار Timestamps

لاراول به‌صورت خودکار ستون‌های created_at و updated_at را مدیریت می‌کند. اگر نمی‌خواهید، می‌توانید آن را غیرفعال کنید:

php
public $timestamps = false;

🧬 Casting Attributes

php
protected $casts = [ 'published' => 'boolean', 'published_at' => 'datetime', ];

✅ نتیجه‌گیری

Eloquent ابزار قدرتمند ORM در لاراول است که با استفاده از سینتکس زیبا و ساده، کار با پایگاه داده را برای توسعه‌دهندگان بسیار لذت‌بخش و سریع می‌کند. اگر به درستی از آن استفاده شود، به شدت می‌تواند زمان توسعه و خطاهای SQL را کاهش دهد.

محتوای مرتبط

پست‌های مرتبط