يوفر Laravel Query Builder واجهة قوية وسلسة لبناء استعلامات SQL في PHP. فهو يسمح لك بالتفاعل مع قاعدة البيانات بطريقة معبرة تشبه لغة SQL مع تجريد معظم التعقيدات.
سنتناول حالة استخدام نموذجية في تطبيق Laravel باستخدام Query Builder لمختلف المهام مثل تحديد البيانات وإدراجها وتحديثها وحذفها.
إذا لم يكن لديك مشروع 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
لنقم بإنشاء وحدة تحكم لتوضيح استخدام 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!']); } }
استخدم Query Builder لتحديد جميع الصفوف من جدول المستخدمين:
$users = DB::table('users')->get();
مثال للإجابة:
[ { "id": 1, "name": "John Doe", "email": "[email protected]" }, { "id": 2, "name": "Jane Doe", "email": "[email protected]" } ]
أدخل مستخدمًا جديدًا باستخدام Query Builder:
DB::table('users')->insert([ 'name' => 'Alice', 'email' => '[email protected]', 'password' => bcrypt('password123'), ]);
يؤدي هذا إلى إضافة مستخدم جديد إلى جدول المستخدمين.
لتحديث سجل موجود، استخدم التحديث ():
DB::table('users') ->where('id', 1) ->update([ 'name' => 'John Smith', 'email' => '[email protected]' ]);
يقوم هذا بتحديث المستخدم بالمعرف 1 في جدول المستخدمين.
لحذف سجل من قاعدة البيانات، استخدم حذف ():
DB::table('users')->where('id', 2)->delete();
يؤدي هذا إلى حذف المستخدم بالمعرف 2.
يمكنك ربط طرق إضافية لتصفية البيانات أو إضافة شروط إلى الاستعلام.
$users = DB::table('users') ->where('email', 'like', '%example.com%') ->orderBy('name', 'asc') ->get();
يُسهل منشئ الاستعلامات في Laravel ترتيب صفحات النتائج.
$users = DB::table('users')->paginate(10);
استخدم معاملات قاعدة البيانات للتأكد من تنفيذ الاستعلامات المتعددة بنجاح. إذا فشل استعلام واحد، فسيتم التراجع عن كافة التغييرات.
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 ]); });
إذا كنت بحاجة إلى تشغيل لغة SQL أولية، فإن أداة إنشاء الاستعلامات في Laravel تسمح بذلك:
$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
يوفر Laravel's Query Builder طريقة قوية ومرنة للتفاعل مع قاعدة البيانات الخاصة بك، مما يزيل الكثير من تعقيدات SQL. من خلال تقسيم كل جزء - الاسترجاع والإدراج والتحديث والحذف والتصفية والمزيد - يمكنك بسهولة إدارة تفاعلات قاعدة البيانات الخاصة بك بطريقة نظيفة ومنظمة.
يوفر هذا المثال دليلاً أساسيًا لـ Query Builder. مع نمو تطبيقك، يمكنك استخدام المزيد من الميزات المتقدمة مثل عمليات الانضمام والاستعلامات الفرعية والتحميل السريع باستخدام Eloquent.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3