Вот несколько продвинутых методов работы с базами данных в Laravel, а также примеры кода:
-
Необработанные запросы.
Laravel позволяет выполнять необработанные запросы SQL с использованием фасадаDB. Вот пример:$users = DB::select('SELECT * FROM users'); -
Построитель запросов.
Построитель запросов Laravel предоставляет удобный способ создания запросов к базе данных с использованием гибкого интерфейса с возможностью цепочки. Вот пример:$users = DB::table('users') ->where('active', true) ->orderBy('name') ->get(); -
Eloquent ORM:
Laravel Eloquent ORM предоставляет реализацию активной записи для работы с вашей базой данных. Вот пример:// Define a User model class User extends Eloquent {} // Retrieve all users $users = User::all(); -
Жаркая загрузка.
Женская загрузка позволяет получить модель с ее связями в одном запросе, чтобы избежать проблемы с запросом N+1. Вот пример:// Retrieve all users with their posts $users = User::with('posts')->get(); -
Транзакции.
Laravel предоставляет простой способ управления транзакциями базы данных. Вот пример:DB::transaction(function () { // Perform database operations within the transaction DB::table('users')->update(['active' => true]); DB::table('posts')->delete(); }); -
Миграция базы данных.
Функция миграции Laravel позволяет вам управлять версиями схемы базы данных. Вот пример:// Create a new migration file php artisan make:migration create_users_table // Run the migrations php artisan migrate -
Области запросов.
Области запросов позволяют определять многократно используемые ограничения запросов в моделях Eloquent. Вот пример:// Define a query scope in the User model class User extends Eloquent { public function scopeActive($query) { return $query->where('active', true); } } // Use the query scope $users = User::active()->get(); -
Разбиение на страницы.
Laravel предоставляет встроенную поддержку разбиения на страницы результатов запроса. Вот пример:$users = User::paginate(10);