الدورات
title
قاعدة البيانات و Eloquent ORM في Laravel: مقدمة شاملة للمبتدئين
قاعدة البيانات و Eloquent ORM في Laravel: مقدمة شاملة للمبتدئين
مقدمة
تعد قواعد البيانات من أهم مكونات أي تطبيق ويب، فهي المكان الذي تُخزن فيه البيانات مثل معلومات المستخدمين، الطلبات، أو المقالات.
إطار لارافيل (Laravel) يوفر آلية قوية وسهلة للتعامل مع قواعد البيانات تسمى Eloquent ORM، وهي اختصار لـ Object Relational Mapper.
في هذا المقال، سنتعرف على كيفية عمل قواعد البيانات داخل Laravel، وما هو Eloquent ORM، ولماذا يعتبر من أقوى مميزات الإطار.
ما هي قاعدة البيانات في Laravel؟
يتيح لك Laravel الاتصال بعدة أنواع من قواعد البيانات مثل:
- MySQL
- PostgreSQL
- SQLite
- SQL Server
ويمكنك إعداد الاتصال بقاعدة البيانات بسهولة من خلال ملف الإعدادات .env.
مثال على إعداد الاتصال بقاعدة البيانات:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_db DB_USERNAME=root DB_PASSWORD=
بعد ضبط هذه الإعدادات، يمكن لإطار العمل الاتصال بقاعدة البيانات وإجراء العمليات عليها مثل الإدخال، التعديل، الحذف، والاستعلام.
ما هو Eloquent ORM؟
Eloquent ORM هو النظام المدمج في Laravel للتعامل مع قواعد البيانات باستخدام البرمجة الكائنية (OOP) بدل كتابة استعلامات SQL التقليدية.
أي أنك بدلاً من كتابة:
SELECT * FROM users WHERE id = 1;
يمكنك كتابة:
$user = User::find(1);
بهذا الشكل، Laravel يتعامل مع قاعدة البيانات بطريقة أنيقة وسهلة الفهم.
مميزات Eloquent ORM
- سهولة الاستخدام: يمكنك التعامل مع الجداول وكأنها كائنات برمجية (Classes).
- أمان واستقرار: يقلل من الأخطاء الشائعة في SQL مثل الحقن (SQL Injection).
- إدارة العلاقات بين الجداول: مثل العلاقة بين المستخدم والمقالات أو الطلبات.
- قابلية التوسع: يسهل تعديل أو توسيع الكود دون التأثير على النظام.
إنشاء نموذج (Model) في Laravel
النموذج (Model) هو الكائن الذي يمثل جدولاً في قاعدة البيانات.
لإنشاء نموذج، استخدم الأمر التالي في سطر الأوامر (Artisan):
php artisan make:model User
سيتم إنشاء ملف جديد في المسار:
app/Models/User.php
مثال على كود النموذج:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $fillable = ['name', 'email', 'password'];
}
الخاصية fillable تحدد الأعمدة التي يمكن إدخال بياناتها بشكل مباشر.
هذا النموذج يتعامل مع جدول users بشكل تلقائي، حيث يستخدم Laravel الاسم الجمع من اسم الكلاس كاسم الجدول.
تنفيذ استعلامات باستخدام Eloquent
جلب جميع السجلات:
$users = User::all();
جلب سجل واحد بناءً على المعرف (id):
$user = User::find(1);
إضافة سجل جديد:
User::create([
'name' => 'Alaa',
'email' => 'alaa@example.com',
'password' => bcrypt('123456')
]);
تعديل البيانات:
$user = User::find(1); $user->name = 'Alaa Updated'; $user->save();
حذف سجل:
$user = User::find(1); $user->delete();
العلاقات بين الجداول (Eloquent Relationships)
Eloquent يسهل تعريف العلاقات بين الجداول مثل:
- واحد إلى واحد (One to One)
- واحد إلى متعدد (One to Many)
- متعدد إلى متعدد (Many to Many)
مثال على علاقة "واحد إلى متعدد":
// داخل Model المستخدم
public function posts()
{
return $this->hasMany(Post::class);
}
وهكذا يمكن الوصول لمقالات المستخدم عبر:
$user->posts;
الخلاصة
إطار لارافيل (Laravel) يجعل التعامل مع قواعد البيانات بسيطًا وفعالًا بفضل Eloquent ORM، الذي يجمع بين قوة SQL وسهولة البرمجة الكائنية.
من خلاله، يمكنك إدارة بياناتك بطريقة منظمة وآمنة وسهلة التوسيع، مما يجعل Laravel خيارًا مثاليًا لبناء تطبيقات ويب احترافية.