El Query Builder de Laravel proporciona una interfaz potente y fluida para crear consultas SQL en PHP. Le permite interactuar con la base de datos en una sintaxis expresiva similar a SQL mientras abstrae la mayor parte de la complejidad.
Analizaremos un caso de uso típico en una aplicación Laravel usando Query Builder para diversas tareas como seleccionar, insertar, actualizar y eliminar datos.
Si no tienes un proyecto de Laravel, puedes configurar uno de la siguiente manera:
composer create-project --prefer-dist laravel/laravel laravel-query-builder cd laravel-query-builder php artisan serve
Asegúrese de configurar la configuración de su base de datos en el archivo .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
Ejecutar migraciones para crear tablas predeterminadas:
php artisan migrate
Creemos un controlador para demostrar el uso de Query Builder:
php artisan make:controller UserController
Edite UserController.php con el siguiente código:
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!']); } }
Utilice Query Builder para seleccionar todas las filas de la tabla de usuarios:
$users = DB::table('users')->get();
Ejemplo de respuesta:
[ { "id": 1, "name": "John Doe", "email": "[email protected]" }, { "id": 2, "name": "Jane Doe", "email": "[email protected]" } ]
Insertar un nuevo usuario usando Query Builder:
DB::table('users')->insert([ 'name' => 'Alice', 'email' => '[email protected]', 'password' => bcrypt('password123'), ]);
Esto agrega un nuevo usuario a la tabla de usuarios.
Para actualizar un registro existente, utilice update():
DB::table('users') ->where('id', 1) ->update([ 'name' => 'John Smith', 'email' => '[email protected]' ]);
Esto actualiza el usuario con ID 1 en la tabla de usuarios.
Para eliminar un registro de la base de datos, utilice eliminar():
DB::table('users')->where('id', 2)->delete();
Esto elimina al usuario con ID 2.
Puedes encadenar métodos adicionales para filtrar los datos o agregar condiciones a la consulta.
$users = DB::table('users') ->where('email', 'like', '%example.com%') ->orderBy('name', 'asc') ->get();
El Generador de consultas de Laravel facilita la paginación de resultados.
$users = DB::table('users')->paginate(10);
Utilice transacciones de bases de datos para garantizar que varias consultas se ejecuten correctamente. Si una consulta falla, todos los cambios se revierten.
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 ]); });
Si necesita ejecutar SQL sin formato, el Generador de consultas de Laravel lo permite:
$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
Query Builder de Laravel ofrece una forma poderosa y flexible de interactuar con su base de datos, abstrayendo gran parte de la complejidad de SQL. Al desglosar cada parte (recuperar, insertar, actualizar, eliminar, filtrar y más), puedes administrar fácilmente las interacciones de tu base de datos de una manera limpia y organizada.
Este ejemplo proporciona una guía básica para Query Builder. A medida que su aplicación crece, puede utilizar funciones más avanzadas como uniones, subconsultas y carga inmediata con Eloquent.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3