O Query Builder do Laravel fornece uma interface poderosa e fluente para construir consultas SQL em PHP. Ele permite que você interaja com o banco de dados em uma sintaxe expressiva semelhante a SQL, enquanto abstrai a maior parte da complexidade.
Examinaremos um caso de uso típico em uma aplicação Laravel usando o Query Builder para diversas tarefas, como selecionar, inserir, atualizar e excluir dados.
Se você não tem um projeto Laravel, você pode configurar um da seguinte forma:
composer create-project --prefer-dist laravel/laravel laravel-query-builder cd laravel-query-builder php artisan serve
Certifique-se de definir a configuração do seu banco de dados no arquivo .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
Execute migrações para criar tabelas padrão:
php artisan migrate
Vamos criar um controlador para demonstrar o uso do Query Builder:
php artisan make:controller UserController
Edite UserController.php com o seguinte 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!']); } }
Use o Query Builder para selecionar todas as linhas da tabela de usuários:
$users = DB::table('users')->get();
Exemplo de resposta:
[ { "id": 1, "name": "John Doe", "email": "[email protected]" }, { "id": 2, "name": "Jane Doe", "email": "[email protected]" } ]
Insira um novo usuário usando o Query Builder:
DB::table('users')->insert([ 'name' => 'Alice', 'email' => '[email protected]', 'password' => bcrypt('password123'), ]);
Isso adiciona um novo usuário à tabela de usuários.
Para atualizar um registro existente, use update():
DB::table('users') ->where('id', 1) ->update([ 'name' => 'John Smith', 'email' => '[email protected]' ]);
Isso atualiza o usuário com ID 1 na tabela de usuários.
Para excluir um registro do banco de dados, use delete():
DB::table('users')->where('id', 2)->delete();
Isso exclui o usuário com ID 2.
Você pode encadear métodos adicionais para filtrar os dados ou adicionar condições à consulta.
$users = DB::table('users') ->where('email', 'like', '%example.com%') ->orderBy('name', 'asc') ->get();
O Query Builder do Laravel facilita a paginação dos resultados.
$users = DB::table('users')->paginate(10);
Use transações de banco de dados para garantir que várias consultas sejam executadas com sucesso. Se uma consulta falhar, todas as alterações serão revertidas.
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 ]); });
Se você precisar executar SQL bruto, o Query Builder do Laravel permite:
$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
O Query Builder do Laravel oferece uma maneira poderosa e flexível de interagir com seu banco de dados, abstraindo grande parte da complexidade do SQL. Ao dividir cada parte - recuperação, inserção, atualização, exclusão, filtragem e muito mais - você pode gerenciar facilmente as interações do banco de dados de maneira limpa e organizada.
Este exemplo fornece um guia básico para o Query Builder. À medida que seu aplicativo cresce, você pode usar recursos mais avançados, como junções, subconsultas e carregamento rápido com o Eloquent.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3