当前位置: 首页 > news >正文

PHP框架之Laravel框架教程:3. 数据库操作(简要)

3. 数据库操作(简要)

配置

数据库的配置文件在 config/database.php 文件中,你可以在这个文件中定义所有的数据库连接配置,并指定默认的数据库连接。这个文件中提供了大部分 Laravel 能够支持的数据库配置示例。

'mysql' => ['driver' => 'mysql','url' => env('DB_URL'),'host' => env('DB_HOST', '127.0.0.1'),'port' => env('DB_PORT', '3306'),'database' => env('DB_DATABASE', 'laravel'),'username' => env('DB_USERNAME', 'root'),'password' => env('DB_PASSWORD', ''),'unix_socket' => env('DB_SOCKET', ''),'charset' => env('DB_CHARSET', 'utf8mb4'),'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),// 用于设置数据库表前缀。它从环境变量中获取DB_PREFIX的值,如果环境变量未设置则使用空字符串作为默认值'prefix' => env('DB_PREFIX', ''), 'prefix_indexes' => true,'strict' => true,'engine' => null,'options' => extension_loaded('pdo_mysql') ? array_filter([PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),]) : [],

.env部分:

DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=laravelDB_USERNAME=rootDB_PASSWORD=123456DB_PREFIX=laravel_

查询
  • 支持执行原生 SQL 查询
  • 查询构建器

等等 这些不做演示了,再官网查看下即可

模型、Eloquent ORM简单介绍

如果你数据库还没有表。在 Laravel 中,你可以通过 模型(Model)结合迁移(Migration) 来创建数据库表

下面是一个完整的示例,演示如何用 Laravel 模型 + 迁移 创建一个“博客文章(Blog Article)”的表,并实现模型逻辑,便于你插入、查询数据。

🧱 目标:创建一个博客文章表 articles,包含以下字段:
字段名类型说明
idbigint主键
titlestring文章标题
contenttext正文内容
authorstring作者名称
is_publishedboolean是否已发布
published_atdatetime发布时间(可空)
created_attimestamp创建时间
updated_attimestamp更新时间
✅ 第一步:创建模型和迁移
bashphp artisan make:model Article -m

这个命令会生成:

  • 模型文件:app/Models/Article.php
  • 迁移文件:database/migrations/xxxx_xx_xx_create_articles_table.php

✅ 第二步:定义迁移内容

编辑生成的迁移文件:

php// database/migrations/xxxx_xx_xx_create_articles_table.phpuse Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;return new class extends Migration {public function up(): void{Schema::create('articles', function (Blueprint $table) {$table->id(); // 主键$table->string('title'); // 标题$table->text('content'); // 正文$table->string('author'); // 作者$table->boolean('is_published')->default(false); // 是否发布$table->timestamp('published_at')->nullable(); // 发布时间$table->timestamps(); // created_at 和 updated_at});}public function down(): void{Schema::dropIfExists('articles');}
};

✅ 第三步:执行迁移
bashphp artisan migrate

成功后数据库会新增一张 articles 表,结构如下:

bashmysql> DESC articles;

✅ 第四步:配置模型 Article

编辑 app/Models/Article.php

php<?phpnamespace App\Models;use Illuminate\Database\Eloquent\Model;class Article extends Model
{// 可批量赋值字段protected $fillable = ['title','content','author','is_published','published_at',];
}
$fillable` 是为了支持批量创建,例如:`Article::create([...])

✅ 第五步:使用模型插入数据(示例)

在控制器或 Tinker 中插入数据:

php// 示例1:插入一篇文章
use App\Models\Article;Article::create(['title' => 'Laravel 入门指南','content' => '这是内容正文...','author' => '涛哥','is_published' => true,'published_at' => now(),
]);

✅ 第六步:查询数据(示例)
php// 查询所有已发布的文章
$publishedArticles = Article::where('is_published', true)->get();// 查询某一篇文章
$article = Article::find(1);
echo $article->title;

✅ 可选扩展:控制器中使用

你可以通过 Artisan 创建控制器:

bashphp artisan make:controller ArticleController --resource

然后在 ArticleController 中添加逻辑,实现增删改查。

Eloquent ORM 还有很多很多内容,官网查询看下即可

http://www.dtcms.com/a/300529.html

相关文章:

  • PowerDesigner 画ER图并生成sql 教程
  • 【学习笔记】MimicGen: 基于人类演示的可扩展机器人学习数据生成系统
  • GIt学习——分布式版本控制工具
  • STL——list
  • 金融科技中的虚拟助手
  • 15.7 DeepSpeed实战:单卡38GB到多卡12GB,3倍效率提升的ZeRO-3配置全解
  • 【专题十五】BFS 解决 FloodFill
  • 多智能体系统设计:协作、竞争与涌现行为
  • 2025年7月25日-7月26日 · AI 今日头条
  • 【第六节】方法与事件处理器
  • 【计算机网络架构】网状型架构简介
  • C++ 多线程(一)
  • 详解力扣高频SQL50题之610. 判断三角形【简单】
  • Vscode的常用快捷键(摆脱鼠标计划)
  • [N1盒子] 斐讯盒子N1 T1通用刷机包(可救砖)
  • 金字塔降低采样
  • C语言:顺序表(上)
  • K8S 九 安全认证 TLS
  • 关于西门子博图基本指令的应用区别
  • VScode 支持 QNX 源码跳转
  • 【Python系列】从内存分析到性能剖析
  • Mysql 二进制安装常见问题
  • 2025年Solar应急响应公益月赛-7月wp
  • mac neo4j install verifcation
  • 论文阅读-IGEV
  • SecureCRT连接密钥交换失败
  • 基于LNMP架构的分布式个人博客搭建
  • 总结和对比Unity中的三种主要抗锯齿技术:FXAA、SMAA和TAA
  • 搭建DM数据守护集群
  • Java 代理机制详解:从静态代理到动态代理,彻底掌握代理模式的原理与实战