Laravel's Query Builder menyediakan antara muka yang berkuasa dan lancar untuk membina pertanyaan SQL dalam PHP. Ia membolehkan anda berinteraksi dengan pangkalan data dalam sintaks seperti SQL yang ekspresif sambil mengabstraksi sebahagian besar kerumitan.
Kami akan melihat kes penggunaan biasa dalam aplikasi Laravel menggunakan Pembina Pertanyaan untuk pelbagai tugas seperti memilih, memasukkan, mengemas kini dan memadamkan data.
Jika anda tidak mempunyai projek Laravel, anda boleh menyediakannya seperti berikut:
composer create-project --prefer-dist laravel/laravel laravel-query-builder cd laravel-query-builder php artisan serve
Pastikan anda menyediakan konfigurasi pangkalan data anda dalam fail .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
Jalankan migrasi untuk membuat jadual lalai:
php artisan migrate
Mari buat pengawal untuk menunjukkan penggunaan Pembina Pertanyaan:
php artisan make:controller UserController
Edit UserController.php dengan kod berikut:
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; use Illuminate\Http\Request; class UserController extends Controller { // Fetching all users from the users table public function index() { // Step 3: Select all users $users = DB::table('users')->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!']); } }
Gunakan Pembina Pertanyaan untuk memilih semua baris daripada jadual pengguna:
$users = DB::table('users')->get();
Contoh Respons:
[ { "id": 1, "name": "John Doe", "email": "john@example.com" }, { "id": 2, "name": "Jane Doe", "email": "jane@example.com" } ]
Masukkan pengguna baharu menggunakan Pembina Pertanyaan:
DB::table('users')->insert([ 'name' => 'Alice', 'email' => 'alice@example.com', 'password' => bcrypt('password123'), ]);
Ini menambah pengguna baharu pada jadual pengguna.
Untuk mengemas kini rekod sedia ada, gunakan kemas kini():
DB::table('users') ->where('id', 1) ->update([ 'name' => 'John Smith', 'email' => 'johnsmith@example.com' ]);
Ini mengemas kini pengguna dengan ID 1 dalam jadual pengguna.
Untuk memadam rekod daripada pangkalan data, gunakan delete():
DB::table('users')->where('id', 2)->delete();
Ini memadamkan pengguna dengan ID 2.
Anda boleh merangkai kaedah tambahan untuk menapis data atau menambah syarat pada pertanyaan.
$users = DB::table('users') ->where('email', 'like', '%example.com%') ->orderBy('name', 'asc') ->get();
Pembina Pertanyaan Laravel memudahkan untuk membuat penomboran hasil.
$users = DB::table('users')->paginate(10);
Gunakan transaksi pangkalan data untuk memastikan berbilang pertanyaan berjaya dilaksanakan. Jika satu pertanyaan gagal, semua perubahan akan ditarik balik.
DB::transaction(function () { DB::table('users')->insert([ 'name' => 'John Doe', 'email' => 'john@example.com', 'password' => bcrypt('password123') ]); DB::table('orders')->insert([ 'user_id' => 1, 'order_total' => 500 ]); });
Jika anda perlu menjalankan SQL mentah, Pembina Pertanyaan Laravel membenarkannya:
$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
Pembina Pertanyaan Laravel menawarkan cara yang berkuasa dan fleksibel untuk berinteraksi dengan pangkalan data anda, menghilangkan banyak kerumitan SQL. Dengan memecahkan setiap bahagian—mendapatkan semula, memasukkan, mengemas kini, memadam, menapis dan banyak lagi—anda boleh mengurus interaksi pangkalan data anda dengan mudah dengan cara yang bersih dan teratur.
Contoh ini menyediakan panduan asas kepada Pembina Pertanyaan. Apabila aplikasi anda berkembang, anda boleh menggunakan ciri yang lebih canggih seperti gabungan, subkueri dan pemuatan yang bersemangat dengan Eloquent.
Atas ialah kandungan terperinci Bermula dengan Laravel: Panduan Pemula untuk Pembina Pertanyaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!