百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

ccwgpt 2025-07-28 15:43 2 浏览 0 评论

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=mysql
 DB_HOST=127.0.0.1
 DB_PORT=3306
 DB_DATABASE=laravel
 DB_USERNAME=root
 DB_PASSWORD=123456
 DB_PREFIX=laravel_

查询

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

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

模型、Eloquent ORM简单介绍

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

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

目标:创建一个博客文章表articles,包含以下字段:

字段名

类型

说明

id

bigint

主键

title

string

文章标题

content

text

正文内容

author

string

作者名称

is_published

boolean

是否已发布

published_at

datetime

发布时间(可空)

created_at

timestamp

创建时间

updated_at

timestamp

更新时间

第一步:创建模型和迁移

bash

php 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.php

use 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');
    }
};

第三步:执行迁移

bash

php artisan migrate

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

bash

mysql> DESC articles;

第四步:配置模型Article

编辑 app/Models/Article.php

php

<?php

namespace 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 创建控制器:

bash

php artisan make:controller ArticleController --resource

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

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

相关推荐

VUE3前端开发入门系列教程二:使用iView框架辅助开发

1、安装iView新框架,支持VUE3npminstallview-ui-plus2、编辑src/main.js,添加以下内容,导入js和css到项目importViewUIPlusfrom...

万能前端框架uni app初探03:底部导航开发

前言本节我们使用uniapp的底部导航功能,点击不同tab会显示不同页面,这个功能在实际项目开发中几乎是必备的。一、基础知识1.tabBar如果应用是一个多tab应用,可以通过tabBar配...

Rust Web 开发框架,前端你可以选择哪个?

Rust构建一切。在如今流行的语言中,Rust可谓是将构建和高效作为自己优美的身姿在大众视野中脱颖而出。它是一门赋予每个人构建可靠且高效软件能力的语言。它有什么特性呢?高性能。Rust速度惊人且内...

连载:前端开发中纠结的Javascript框架(上)

如今,前端开发有着许许多多的框架和库。其中一些好用,一些却不尽人意。通常我们会习惯性运用某一概念,模块或句法。事实上,并没有什么万能工具。这篇文章是关于未来框架的发展趋势——那就是没有框架!我从以下几...

前端开发框架的演进架构:提升用户体验和开发效率

前端开发框架是现代Web应用开发的重要工具,它不仅可以帮助开发者构建复杂的用户界面,还能够提升用户体验和开发效率。随着Web技术的不断发展,前端开发框架也在不断演进,为开发者提供了更丰富、更高效的工具...

Google应用Mesh-TensorFlow框架,让CNN也能处理超高分辨率图像

为了要处理超高分辨率医疗图像数据,Google开发了一种空间数据分区(SpatialPartition)技术,在不牺牲图像分辨率的条件下,分析超高分辨率图像。Google使用Mesh-TensorF...

大模型安全挑战加剧:框架层漏洞成新靶心

近日,360数字安全集团发布了一份关于大模型安全漏洞的报告,揭示了当前大模型及围绕其构建的框架和应用中存在的严重安全问题。报告显示,360近期研究发现了近40个大模型相关的安全漏洞,其中既包括二进制内...

Keras 3.0正式发布:可用于TensorFlow、JAX和PyTorch

机器之心报道编辑:陈萍经过5个月的更新迭代,Keras3.0终于来了。「大新闻:我们刚刚发布了Keras3.0版本!」Keras之父FrancoisChollet在X上激动的...

TensorFlow和Keras入门必读教程(tensorflow与keras版本对应)

导读:本文对TensorFlow的框架和基本示例进行简要介绍。作者:本杰明·普朗什(BenjaminPlanche)艾略特·安德烈斯(EliotAndres)来源:华章科技01TensorFlo...

谷歌官方回应“TensorFlow遭弃”:还在投资开发,将与JAX并肩作战

鱼羊发自凹非寺量子位|公众号QbitAI终于,谷歌出面回应“TensorFlow遭弃”传闻:我们将继续致力于将TensorFlow打造为一流机器学习平台,与JAX并肩推动机器学习研究。这段时...

2025 年的PHP :现代 Web 开发的强大引擎

程序员还在吐槽PHP过时?2025年的PHP8.4直接封神了。看看最近更新的属性钩子、强类型系统,加上Laravel这些框架,老语言早就脱胎换骨。十年前说PHP弱类型容易崩代码的,现在脸疼不?联合类...

前端内卷终结者?htmx如何让开发者告别200行JS只做一个按钮

当你用React写一个点赞按钮需要引入3个状态管理库、编写80行JSX和120行钩子函数时,htmx只需要一行HTML:<buttonhx-post="/like"hx-sw...

NativePHP桌面版V1.0正式发布(元气桌面电脑版下载)

导读:各位小伙伴,使用PHP构建桌面级系统的利器,NativePHP来了。概述NativePHP是一个用于使用PHP构建桌面应用的框架。它允许PHP开发人员使用熟悉的工具和技术创建跨平台的原生应用...

PHP Laravel框架底层机制(php基本框架)

当然可以,Laravel是最受欢迎的PHP框架之一,以优雅的语法和丰富的生态而闻名。尽管开发体验非常“高端”,它的底层其实是由一系列结构清晰、职责分明的组件构成的。下面我从整体架构、核心流程、...

PHP框架之Laravel框架教程:2. 控制器、路由、视图简单介绍

2.控制器、路由、视图简单介绍我们先建立控制器,目录是:app/Http/Controllers,新建控制器Ding.php,代码如下:Ding.php:<?phpnamespaceA...

取消回复欢迎 发表评论: