إتقان Eloquent ORM: الدليل الشامل
دليل شامل لإتقان Eloquent ORM، أداة إدارة قواعد البيانات في Laravel
I
InSkillCoach
· دقيقة
إتقان Eloquent ORM: الدليل الشامل
يُعدّ Eloquent ORM من أقوى مكوّنات Laravel. فهو يبسّط التفاعل مع قاعدة البيانات إلى حدّ كبير، إذ يتيح التعامل مع البيانات ككائنات PHP.
أساسيات Eloquent
إنشاء نموذج
php artisan make:model User -m
بنية النموذج الأساسي
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $fillable = ['name', 'email', 'password'];
protected $hidden = ['password'];
}
العلاقات في Eloquent
One-to-One
public function profile()
{
return $this->hasOne(Profile::class);
}
One-to-Many
public function posts()
{
return $this->hasMany(Post::class);
}
Many-to-Many
public function roles()
{
return $this->belongsToMany(Role::class);
}
الاستعلامات المتقدمة
تصفية البيانات
// بحث بسيط
User::where('active', true)->get();
// استعلامات معقدة
User::where('age', '>', 18)
->whereHas('posts', function($query) {
$query->where('published', true);
})
->get();
التجميعات
// العدّ
User::count();
// المجموع
Order::sum('total');
// المتوسط
Rating::avg('score');
أفضل الممارسات
1. استخدام النطاقات (Scopes)
public function scopeActive($query)
{
return $query->where('active', true);
}
// الاستخدام
User::active()->get();
2. دوال الوصول والتعديل (Accessors و Mutators)
// دالة الوصول
public function getFullNameAttribute()
{
return "{$this->first_name} {$this->last_name}";
}
// دالة التعديل
public function setPasswordAttribute($value)
{
$this->attributes['password'] = bcrypt($value);
}
3. المجموعات (Collections)
$users = User::all()->filter(function ($user) {
return $user->posts_count > 3;
})->map(function ($user) {
return $user->only(['id', 'name', 'email']);
});
تحسين الأداء
1. التحميل المسبق (Eager Loading)
// بدون Eager Loading (مشكلة N+1)
$books = Book::all();
foreach ($books as $book) {
echo $book->author->name;
}
// مع Eager Loading
$books = Book::with('author')->get();
2. المعالجة على دفعات (Chunking) للبيانات الكبيرة
User::chunk(100, function ($users) {
foreach ($users as $user) {
// المعالجة على دفعات
}
});
الخاتمة
يُعدّ Eloquent ORM أداة قوية تبسّط إدارة قواعد البيانات في Laravel إلى حدّ كبير. ومن خلال إتقان ميزاته، يمكنك بناء تطبيقات أكثر أداءً وأسهل صيانة.
مصادر إضافية
نبذة عن InSkillCoach
خبير في التدريب والتقنيات
مدرّب متخصص في التقنيات المتقدمة والذكاء الاصطناعي، تدعمه شركة GNeurone Inc.
الشهادات:
- AWS Certified Solutions Architect – Professional
- شهادات Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
1.8k
113
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش