[ Laravel 从入门到精通 ] 数据库和 Eloquent 进阶 —— 通过 Eloquent 模型实现简单增删改查操作

概述 Eloquent 是一个 ActiveRecord ORM 框架,ORM 全称是 Object Relational Mapping,意为对象关系映射,用于实现面向对象编程语言里不同类型系统的数据之间的转换,简单来说,它会构建类与数据表之间的映射关系,从而建立起一个可在编程语言里使用的「虚拟对象数据库」。「ActiveRecord」是 ORM 的一种实现模式,Eloquent 则是...

[ Laravel 从入门到精通 ] 数据库和 Eloquent 进阶 —— 通过查询构建器实现复杂的查询语句

在上一篇教程中,我们通过查询构建器实现了简单的增删改查操作,而日常开发中,往往会涉及到一些更复杂的查询语句,比如连接查询、子查询、排序、分页、聚合查询等等,这一篇教程我们将围绕这些内容展开探讨。 查询小技巧 我们首先来介绍几个 Laravel 自带的语法糖,可以帮助我们快速获取期望的查询结果,提高编码效率。 有时候,我们想要获取的并不是一行或几行记录,而是某个字段的值,你当然你可以查询到...

[ Laravel 从入门到精通 ] 数据库和 Eloquent 入门 —— 通过查询构建器实现简单的增删改查操作

通过前面几篇教程的预热,我们已经连接上数据库,创建好了数据表,填充好了数据,接下来,就是在 Laravel 应用中实现对数据库的增删改查了。 Laravel 数据库功能的核心就是提供流式接口与数据库进行交互的查询构建器(Query Builder),支持 MySQL、Postgres、SQLite 和 SQL Server 等常见的数据库管理系统,没有特别说明的话,我们的所有教程都基于 ...

[ Laravel 从入门到精通 ] 数据库和 Eloquent 入门 —— 通过填充器快速填充测试数据

我们在前两篇教程中分别介绍了如何连接到数据库,以及如何通过迁移文件定义表结构来创建或修改数据表,接下来,是时候在数据表里添加内容了。在 Laravel 框架中,如果想要快速填充测试数据到数据库,可以借助框架提供的填充器功能,通过填充器,我们可以非常方便地为不同数据表快速填充测试数据。 填充器简介 在应用根目录的 database/seeds 目录下,默认包含一个 DatabaseSeed...

[ Laravel 从入门到精通 ] 数据库和 Eloquent 入门 —— 通过迁移文件定义数据表结构

在对数据库进行操作之前,需要先创建数据表,在诸如 Laravel 这种现代框架中,通过代码驱动让数据表结构的定义变得非常简单。每一张新表、每个新的字段、索引、以及外键都可以通过编写代码来定义,这样做的好处是在任何新环境中,你可以通过执行一个命令几秒钟就搞定项目的数据库结构。 这种代码驱动的数据表结构定义功能我们把它叫做迁移(Migrations),意为方便你在项目的不同环境中快速迁移数据...

[ Laravel 从入门到精通 ] 数据库和 Eloquent 入门 —— 数据库连接配置和读写分离

今天开始讲如何在 Laravel 中操作数据库,Laravel 为我们提供了多种工具实现对数据库的增删改查,在我们使用 Laravel 提供的这些数据库工具之前,首先要连接到数据库。 数据库的连接配置文件位于 config/database.php,和很多其他 Laravel 配置一样,你可以为数据库配置多个「连接」,然后决定将哪个「连接」作为默认连接。 基本配置 默认情况下,Larav...

[ Laravel 从入门到精通 ] 命令行交互:通过 Tinker 实现 Laravel 命令行交互式 Shell

REPL 与 PsySH Laravel 自带了一个功能强大的 REPL —— Tinker,所谓 REPL,是 Read–Eval–Print-Loop 的缩写,这是一种交互式 Shell:获取用户输入并执行它们,然后将结果打印出来返回给用户。 在原生 PHP 中,我们也可以使用类似的交互式 Shell,通过 php -a 命令即可: 此外,还可以通过 PsySH 实现,相较于原生的...

[ Laravel 从入门到精通 ] 命令行交互:在 Laravel 中编写高级的 Artisan 命令

在上一篇教程中,学院君向大家介绍了什么是 Artisan 命令,系统内置的 Artisan 命令,以及如何编写一个简单的 Artisan 命令。我们完全可以将命令行看作与 Web 应用同等的控制台应用(实际上,Laravel 底层也是这么做的),它具备自己的路由、Kernel、输入、控制器(命令类)、输出。因此,在这篇教程中,我们将更进一步,一起来看下如何编写更加高级的 Artisan ...

[ Laravel 从入门到精通 ] 命令行交互:在 Laravel 中编写第一个 Artisan 命令

不管是 Node.js、Python 还是 PHP 的 Web 框架,都提供了通过命令行与应用进行交互的功能,通过这些命令行工具,我们可以完成一些初始化操作,比如创建新应用、执行数据库迁移、或者快速创建类文件等,在 Laravel 中,我们可以通过三种工具实现命令行交互: Artisan:Laravel 内置的命令行操作工具集,支持自定义命令; Tinker:一个由 PsySH 扩展包...

[ Laravel 从入门到精通 ] 处理用户请求:通过匿名函数和验证规则类自定义字段验证规则

Laravel 验证器的强大之处不仅在于提供上述多种请求验证方式,以及非常丰富的字段验证规则(不同规则可以组合形成新的验证规则),还支持自定义字段验证规则。我们可以通过匿名函数和验证规则类两种方式来自定义验证规则。 通过匿名函数实现自定义规则 我们先演示下如何在控制器方法中调用 $this->validate() 时自定义验证规则,以 title 字段为例,除了系统提供的字段验证规则之外...