"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > الشروع في العمل مع Laravel: دليل المبتدئين لمنشئ الاستعلامات

الشروع في العمل مع Laravel: دليل المبتدئين لمنشئ الاستعلامات

تم النشر بتاريخ 2024-11-08
تصفح:814

Getting Started with Laravel: A Beginner

يوفر Laravel Query Builder واجهة قوية وسلسة لبناء استعلامات SQL في PHP. فهو يسمح لك بالتفاعل مع قاعدة البيانات بطريقة معبرة تشبه لغة SQL مع تجريد معظم التعقيدات.

سنتناول حالة استخدام نموذجية في تطبيق Laravel باستخدام Query Builder لمختلف المهام مثل تحديد البيانات وإدراجها وتحديثها وحذفها.


الخطوة 1: إعداد مشروع Laravel

إذا لم يكن لديك مشروع Laravel، يمكنك إعداد واحد كما يلي:

composer create-project --prefer-dist laravel/laravel laravel-query-builder
cd laravel-query-builder
php artisan serve

تأكد من إعداد تكوين قاعدة البيانات الخاصة بك في ملف .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password

تشغيل عمليات الترحيل لإنشاء الجداول الافتراضية:

php artisan migrate

الخطوة 2: استخدم Query Builder في وحدة التحكم

لنقم بإنشاء وحدة تحكم لتوضيح استخدام Query Builder:

php artisan make:controller UserController

قم بتحرير UserController.php بالكود التالي:

get();

        return response()->json($users);
    }

    // Insert a new user
    public function store(Request $request)
    {
        // Step 4: Insert a new user
        DB::table('users')->insert([
            'name' => $request->name,
            'email' => $request->email,
            'password' => bcrypt($request->password),
        ]);

        return response()->json(['message' => 'User created successfully!']);
    }

    // Update an existing user
    public function update(Request $request, $id)
    {
        // Step 5: Update user by ID
        DB::table('users')
            ->where('id', $id)
            ->update([
                'name' => $request->name,
                'email' => $request->email,
            ]);

        return response()->json(['message' => 'User updated successfully!']);
    }

    // Delete a user
    public function destroy($id)
    {
        // Step 6: Delete user by ID
        DB::table('users')->where('id', $id)->delete();

        return response()->json(['message' => 'User deleted successfully!']);
    }
}

الخطوة 3: استرداد البيانات

استخدم Query Builder لتحديد جميع الصفوف من جدول المستخدمين:

$users = DB::table('users')->get();
  • وصف:
    • تستهدف طريقة DB::table('users') جدول المستخدمين.
    • تسترد طريقة get() جميع السجلات من هذا الجدول.

مثال للإجابة:

[
    {
        "id": 1,
        "name": "John Doe",
        "email": "[email protected]"
    },
    {
        "id": 2,
        "name": "Jane Doe",
        "email": "[email protected]"
    }
]

الخطوة 4: أدخل البيانات

أدخل مستخدمًا جديدًا باستخدام Query Builder:

DB::table('users')->insert([
    'name' => 'Alice',
    'email' => '[email protected]',
    'password' => bcrypt('password123'),
]);
  • وصف:
    • تقوم طريقة الإدراج () بإدراج صف جديد في جدول المستخدمين.
    • يتم تمرير البيانات كمصفوفة ترابطية حيث تتطابق المفاتيح مع أسماء الأعمدة.

يؤدي هذا إلى إضافة مستخدم جديد إلى جدول المستخدمين.


الخطوة 5: تحديث البيانات

لتحديث سجل موجود، استخدم التحديث ():

DB::table('users')
    ->where('id', 1)
    ->update([
        'name' => 'John Smith',
        'email' => '[email protected]'
    ]);
  • وصف:
    • تحدد جملة Where() الصف ذو المعرف = 1.
    • تقوم طريقة التحديث () بتعديل حقول الاسم والبريد الإلكتروني للصف المحدد.

يقوم هذا بتحديث المستخدم بالمعرف 1 في جدول المستخدمين.


الخطوة 6: حذف البيانات

لحذف سجل من قاعدة البيانات، استخدم حذف ():

DB::table('users')->where('id', 2)->delete();
  • وصف:
    • تحدد جملة Where() شرط تحديد المستخدم بالمعرف 2.
    • تزيل طريقة الحذف () الصف المطابق من الجدول.

يؤدي هذا إلى حذف المستخدم بالمعرف 2.


الخطوة 7: التصفية باستخدام Query Builder

يمكنك ربط طرق إضافية لتصفية البيانات أو إضافة شروط إلى الاستعلام.

مثال: استرداد المستخدمين الذين لديهم حالة معينة

$users = DB::table('users')
    ->where('email', 'like', '%example.com%')
    ->orderBy('name', 'asc')
    ->get();
  • وصف:
    • تضيف جملة Where() شرطًا، لجلب المستخدمين الذين يحتوي بريدهم الإلكتروني على example.com.
    • يقوم الأسلوب orderBy() بفرز المستخدمين حسب الاسم بترتيب تصاعدي.

الخطوة 8: ترقيم الصفحات

يُسهل منشئ الاستعلامات في Laravel ترتيب صفحات النتائج.

$users = DB::table('users')->paginate(10);
  • وصف:
    • تقوم طريقة paginate() بتقسيم النتائج إلى صفحات، وتعرض 10 نتائج لكل صفحة.

الخطوة 9: المعاملات

استخدم معاملات قاعدة البيانات للتأكد من تنفيذ الاستعلامات المتعددة بنجاح. إذا فشل استعلام واحد، فسيتم التراجع عن كافة التغييرات.

DB::transaction(function () {
    DB::table('users')->insert([
        'name' => 'John Doe',
        'email' => '[email protected]',
        'password' => bcrypt('password123')
    ]);

    DB::table('orders')->insert([
        'user_id' => 1,
        'order_total' => 500
    ]);
});
  • وصف:
    • تضمن طريقة المعاملة () تنفيذ إدراجات جدول المستخدمين والأوامر بنجاح. إذا فشلت أي منهما، سيتم التراجع عن كلتا العمليتين.

الخطوة 10: الاستعلامات الأولية

إذا كنت بحاجة إلى تشغيل لغة SQL أولية، فإن أداة إنشاء الاستعلامات في Laravel تسمح بذلك:

$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
  • وصف:
    • يمكن استخدام طريقة التحديد () لتنفيذ استعلامات SQL الأولية.
    • يستخدم عبارات معدة (؟) للأمان، ويمنع حقن SQL.

خاتمة

يوفر Laravel's Query Builder طريقة قوية ومرنة للتفاعل مع قاعدة البيانات الخاصة بك، مما يزيل الكثير من تعقيدات SQL. من خلال تقسيم كل جزء - الاسترجاع والإدراج والتحديث والحذف والتصفية والمزيد - يمكنك بسهولة إدارة تفاعلات قاعدة البيانات الخاصة بك بطريقة نظيفة ومنظمة.

يوفر هذا المثال دليلاً أساسيًا لـ Query Builder. مع نمو تطبيقك، يمكنك استخدام المزيد من الميزات المتقدمة مثل عمليات الانضمام والاستعلامات الفرعية والتحميل السريع باستخدام Eloquent.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/mdarifulhaque/getting-started-with-laravel-a-beginners-guide-to-query-builder-j0i?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163 .com لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3