当前位置: 首页 > 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.lryc.cn/news/601438.html

相关文章:

  • net8.0一键创建支持(RabbitMQ)
  • 积分兑换小程序Java
  • Torchv Unstrustured 文档解析库
  • Matplotlib(二)- Matplotlib简单绘图
  • 在docker中安装frp实现内网穿透
  • 【数据结构与算法】数据结构初阶:详解排序(二)——交换排序中的快速排序
  • 【51单片机和数码管仿真显示问题共阴共阳代码】2022-9-24
  • 算法竞赛阶段二-数据结构(36)数据结构双向链表模拟实现
  • hackthebox-Pwn-Restaurant(ret2libc)
  • MySQL 8.4 Windows 版安装记录与步骤参考
  • STM32-USART串口实现接收数据三种方法(1.根据\r\n标志符、2.空闲帧中断、3.根据定时器辅助接收)
  • 数据结构第1问:什么是数据结构?
  • 三、构建一个Agent
  • 栈----5.柱状图中最大的矩形
  • RabbitMq 常用命令和REST API
  • 基于分组规则的Excel数据分组优化系统设计与实现
  • 阿里 Qwen3 四模型齐发,字节 Coze 全面开源,GPT-5 8 月初发布!| AI Weekly 7.21-7.27
  • GPT 生成一个打字练习页面
  • maven optional 功能详解
  • 盛最多水的容器-leetcode
  • 时间长了忘记jupyter的环境是哪个了
  • k8s的csi对接GPFS
  • 系统架构设计师-【2025年上半年综合知识题】-真题回忆版分享
  • 动手学深度学习笔记04(上)
  • 物联网发展:从概念到应用的演变历程
  • Sql server开挂的OPENJSON
  • haproxy七层代理(知识点+相关实验部署)
  • C++算法竞赛篇(六)一维数组题型讲解
  • Rust实战:高效开发技巧
  • 【Java实例】服务器IP一站式管理