Eloquent ORM 实例教程 —— 关联关系及其在模型中的定义(一)

数据表之间往往不是孤立的,而是纵横交叉、相互关联的,比如一个用户发表了多篇文章,一个文章又有多个评论,等等。Eloquent模型支持多种关联关系,下面让我们一一道来。 1、一对一 一对一是最简单的关联关系,表示表A和表B的记录一一对应,比如一个用户对应一个社交账号,在演示该关联关系之前我们先创建一个社交账号表user_accounts: php artisan make:m...

Eloquent ORM 实例教程 —— 查询作用域和模型事件

1、查询作用域 Eloquent还支持将一些常用的查询封装到模型方法中,方便调用,我们将其称之为“查询作用域”,实现查询作用域很简单,只需要在模型方法前加上scope前缀即可,比如我们经常需要获取浏览数最高的文章,就可以使用该机制实现——在Post中定义一个scopePopular方法: public function scopePopular($query) { r...

Eloquent ORM 实例教程 —— 模型删除及软删除相关实现

1、删除模型 1.1 使用delete删除模型 删除模型很简单,先获取要删除的模型实例,然后调用delete方法即可: $post = Post::find(5); if($post->delete()){ echo '删除文章成功!'; }else{ echo '删除文章失败!'; } 该方法返回true或false。 1.2 使用dest...

Eloquent ORM 实例教程 —— 模型创建、更新及批量赋值

1、创建模型 1.1 使用save方法创建模型 调用Eloquent模型类的save方法即可创建模型并插入数据到数据库: $post = new Post; $post->title = 'test 4'; $post->content = 'test content'; $post->user_id = 1; $post->cat_id = 1...

Eloquent ORM 实例教程 —— ORM概述、模型定义及基本查询

1、引子 在正式进入本节的之前,让我们先来看看什么是ORM。 ORM,即 Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在操作具体的 业务对象时,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法即可。 ORM 两种最常见的实现方式是 ActiveRecord 和 D...

Laravel 数据库实例教程 —— 使用查询构建器实现对数据库的高级查询

上一节我们简单介绍了如何使用查询构建器对数据库进行基本的增删改查操作,这一节我们来探讨如何使用查询构建器实现一些更高级的查询操作。 1、连接查询(join) 连接查询指的是将两张表或多张表关联到一起进行查询,获取一个表的行与另一个表的行匹配的数据。常见的连接查询包括内连接(等值连接)、左(外)连接、右(外)连接和交叉连接(完全连接)等。下面这张图形象的展示了这几种连接查询所获取的结果...

Laravel 数据库实例教程 —— 使用查询构建器对数据库进行增删改查

上一节我们讲了如何使用DB门面对数据库进行原生查询,这一节我们使用另外一种方式实现对数据库的增删改查——查询构建器(Query Builder)。 获取查询构建器很简单,还是要依赖DB门面,我们使用DB门面的table方法,传入表名,即可获取该表的查询构建器: $users = DB::table('users'); 这样我们就获取到了$users表的查询构建器,实际上,底层返...

Laravel 数据库实例教程 —— 使用DB门面操作数据库

Laravel支持多种数据库,包括MySQL、Postgres、SQLite和SQL Server,在Laravel中连接数据库和查询数据库都非常简单,我们可以使用多种方式与数据库进行交互,包括原生SQL语句、查询构建器以及Eloquent ORM。本节我们先演示如何使用原生SQL在Laravel应用中对数据库进行增删改查。 1、连接数据库 Laravel中数据库配置文件为confi...

Laravel Spark 牛刀初试 —— 安装、设置及使用

我们在Laravel Spark Alpha 版本发布中提到了Spark发布的目的及其功能,本教程将深入了解如何使用这个新包。 Spark被设计的时候只考虑一件事情,那就是如何让SaaS应用中构建支付系统变得简单。如果你曾经构建过团队管理以及支付系统,那么你就会明白这个过程是多么耗时和痛苦。大量重复乏味的工作消耗在支持各种不同的系统、为此进行设计、创建发票单据,等等等等。使用Spa...

Laravel 门面实例教程 —— 创建自定义 Facades 类

使用Laravel框架必不可少的会用到它很多强大的门面类(Facades),门面提供了一个“静态”接口到服务容器中绑定的类,官方文档阐述了如何使用系统自带的缓存门面,我们这里演示如何创建并使用一个自定义的门面类。 注:本教程基于上一节服务提供者做部分代码修改,不熟悉的请参阅。 我们首先创建一个需要绑定到服务容器的Test类: <?php namespace App\Fa...