Laravel 数据库快速入门
Laravel 数据库快速入门
Laravel 是一个流行的 PHP 框架,它提供了一套简单且强大的工具用于与数据库进行交互。Laravel 支持多种数据库系统,包括 MySQL、PostgreSQL、SQLite 和 SQL Server。以下是 Laravel 数据库快速入门的指南。
- 配置数据库连接
Laravel 的数据库配置文件位于 config/database.php。在这个文件中,你可以定义所有的数据库连接,并指定默认的数据库连接。配置文件提供了大部分 Laravel 支持的数据库配置示例。
默认情况下,Laravel 使用环境变量来管理数据库配置,这使得在不同环境中切换数据库配置变得简单。你可以在 .env 文件中设置这些环境变量,例如:
plaintext
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
对于 SQLite 数据库,你只需要创建一个 SQLite 数据库文件,并配置 DB_DATABASE 环境变量指向这个文件。
- 使用原生 SQL 查询
一旦配置好数据库连接,你可以使用 Laravel 的 DB facade 来运行原生 SQL 查询。DB facade 为每种类型的查询提供了方法:select、update、insert、delete 和 statement。
例如,运行一个 SELECT 查询:
php
use Illuminate\Support\Facades\DB;
$users = DB::select('SELECT * FROM users WHERE active = ?', [1]);
在这个例子中,select 方法的第一个参数是原生 SQL 查询语句,第二个参数是绑定到查询中的参数值,用于防止 SQL 注入。
- 使用查询构造器
Laravel 的查询构造器提供了一种更优雅的方式来构建和运行数据库查询。查询构造器允许你使用链式方法来构建查询,而不需要写原生 SQL。
例如,检索所有活跃的用户并按名称排序:
php
$users = DB::table('users')
->where('active', 1)
->orderBy('name', 'desc')
->get();
查询构造器还提供了分页、聚合函数和其他高级功能。
- 使用 Eloquent ORM
Eloquent 是 Laravel 附带的 ORM(对象关系映射器),它提供了一个简单、优雅的 ActiveRecord 实现,用于与数据库交互。每个数据库表都对应一个 Eloquent 模型,用于与该表进行交互。
首先,定义一个 Eloquent 模型。例如,定义一个 Flight 模型:
bash
php artisan make:model Flight
然后,你可以使用模型来检索、插入、更新和删除数据。例如,检索所有航班:
php
$flights = App\Flight::all();
或者,根据条件检索航班:
php
$flight = App\Flight::where('active', 1)->first();
Eloquent 还支持关系、作用域、事件和观察者等高级功能。
- 数据库读写分离
有时候,你可能希望使用一个数据库连接来执行 SELECT 语句,而 INSERT、UPDATE 和 DELETE 语句则由另一个数据库连接来执行。在 Laravel 中,这可以通过在 config/database.php 文件中配置读写分离来实现。
例如,配置 MySQL 数据库的读写分离:
php
'mysql' => [
'read' => [
'host' => '192.168.1.1',
],
'write' => [
'host' => '196.168.1.2',
],
'sticky' => true,
'driver' => 'mysql',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
],
在这个例子中,read 连接将使用 192.168.1.1 作为主机,而 write 连接将使用 196.168.1.2 作为主机。sticky 选项用于允许 Laravel 立即读取在当前请求周期内写入到数据库的记录。
总结
Laravel 提供了一套简单且强大的工具用于与数据库进行交互。通过配置数据库连接、使用原生 SQL 查询、查询构造器和 Eloquent ORM,你可以轻松地构建复杂的数据库应用程序。希望这份快速入门指南能帮助你快速上手 Laravel 数据库操作。