
本文共 2740 字,大约阅读时间需要 9 分钟。
Laravel教程 四:数据库和Eloquent
数据库配置
在 Laravel 项目中,数据库配置文件位于项目根目录下的 config/database.php
中。主要关注_connections数组中的配置。我们可以通过环境变量或直接配置数据库驱动。
'connections' => [ 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, ],]
环境变量配置
数据库配置主要通过 .env
文件中的环境变量进行设置。例如,通常配置如下:
DB_HOST=localhostDB_DATABASE=homesteadDB_USERNAME=homesteadDB_PASSWORD=secret
Homestead开发环境
使用 Homestead 作为开发环境时,默认用户名和密码为 homestead
和 secret
。部署应用时,可以通过服务器上的 .env
文件配置相应数据库信息。
选择合适的数据库框架
Laravel 支持多种数据库框架,常见的有 MySQl、PostgreSQL 和 SQLite。根据项目需求选择合适的数据库类型进行配置。
使用Migration
数据库迁移是一个强大的工具,可以帮助我们自动化管理数据库 schema。通过 php artisan make:migration
commands 生成迁移文件,定义数据表结构。
创建迁移文件
php artisan make:migration create_articles_table --create="articles"
生成迁移文件后,文件位于 database/migrations/
目录中。例如:
public function up(){ Schema::create('articles', function (Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('intro'); $table->text('content'); $table->timestamp('published_at'); $table->timestamps(); });}public function down(){ Schema::drop('articles');}
执行迁移
php artisan migrate
迁移回滚
php artisan migrate:rollback
迁移的优势在于可以通过代码控制数据库 schema 的变更,适合团队协作开发。
介绍Eloquent ORM
Eloquent 是 Laravel 的对象关系映射工具,允许我们通过代码与数据库进行交互。
创建Eloquent Model
通过 php artisan make:model
命令创建模型:
php artisan make:model Article
默认模型位于 App/Article.php
中,继承 Illuminate\Database\Eloquent\Model
类。
核心字段设置
通过迁移文件定义的字段包括:
id
:自增主键title
:字符串字段intro
:文本字段content
:文本字段published_at
:时间戳字段
数据操作
使用 Artisan Tinker 进行实验:
php artisan tinker
$article = new App\Article;$article->title = 'Your Post Title';$article->intro = 'Article Introduction';$article->content = 'Article Content';$article->published_at = Carbon\Carbon::now();$article->save();
查询方法
$articles = App\Article::all(); // 获取所有文章$article = App\Article::find(1); // 获取id为1的文章$article = App\Article::where('title', '=', 'Your Post Title')->first(); // 按标题查询
更新和删除操作
$article = App\Article::find(2);$article->intro = 'Updated Introduction';$article->save();$article->delete();
创建记录
使用 create
方法:
App\Article::create([ 'title' => 'New Post', 'intro' => 'New Introduction', 'content' => 'New Content', 'published_at' => Carbon\Carbon::now(),]);
###_self赋值性能优化
在模型中定义可赋值字段:
protected $fillable = ['title', 'intro', 'content', 'published_at'];
数据关联与关联关系
Eloquent支持一对一、一对多、多对多的关系定义,方便数据关联。
好的,这就是数据库和Eloquent的基础配置和操作解释。
下一章节将介绍 Laravel 的 MVC 模型、路由和 CONTROLLERS 的实现方法。希望这篇文章对你理解 Laravel 的数据库操作有所帮助!
发表评论
最新留言
关于作者
