Query Builder от Laravel предоставляет мощный и гибкий интерфейс для построения 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!']); } }
Используйте Построитель запросов, чтобы выбрать все строки из таблицы пользователей:
$users = DB::table('users')->get();
Пример ответа:
[ { "id": 1, "name": "John Doe", "email": "[email protected]" }, { "id": 2, "name": "Jane Doe", "email": "[email protected]" } ]
Вставьте нового пользователя с помощью конструктора запросов:
DB::table('users')->insert([ 'name' => 'Alice', 'email' => '[email protected]', 'password' => bcrypt('password123'), ]);
Это добавляет нового пользователя в таблицу пользователей.
Чтобы обновить существующую запись, используйте update():
DB::table('users') ->where('id', 1) ->update([ 'name' => 'John Smith', 'email' => '[email protected]' ]);
Это обновит пользователя с идентификатором 1 в таблице пользователей.
Чтобы удалить запись из базы данных, используйте delete():
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 предлагает мощный и гибкий способ взаимодействия с вашей базой данных, абстрагируя большую часть сложностей SQL. Разбивая каждую часть — извлечение, вставку, обновление, удаление, фильтрацию и многое другое — вы можете легко и четко управлять взаимодействием с базой данных.
В этом примере представлено базовое руководство по Query Builder. По мере роста вашего приложения вы можете использовать более продвинутые функции, такие как соединения, подзапросы и быстрая загрузка с помощью Eloquent.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3