从 v1.7 升级到 v1.8

令人兴奋的新功能 🎉

功能增强 🚀

破坏性变化 🛠

Bug 修复 🐛

升级指南

预计升级时间:1 分钟

更新依赖

go.mod 中更新依赖:

go get -u github.com/goravel/framework@v1.8.3

Orm 新增模型关联

Version: v1.8.0

Orm 新增方法,以处理模型关联等操作:

方法名作用
Association关联操作
DB获取通用数据库接口
Load延迟预加载
LoadMissing延迟预加载(不存在)
Omit忽略关联
With预加载

Request 新增方法

Version: v1.8.0

ctx.Request() 新增方法,以丰富 Query 传参的格式:

方法名作用
QueryArray获取链接传入的数组参数
QueryMap获取链接传入的 Map 参数

Response 新增方法

Version: v1.8.0

ctx.Response() 新增 Origin 方法,可以在 HTTP 中间件中获取 Response 的所有信息。

查看文档

优化 import 顺序

Version: v1.8.0

bootstrap/app.go 文件中 import 顺序修改为:

package bootstrap

import (
  "github.com/goravel/framework/foundation"

  "goravel/config"
)

查看文件open in new window

优化数据库迁移

Version: v1.8.0

运行生成数据库迁移文件命令 go run . artisan make:migration create_users_table,将根据当前使用的默认数据库驱动 facades.Config.GetString("database.default") 生成对应的迁移文件。

mock.Validator 改名

Version: v1.8.0

如果您使用了 mock.Validator 来编写单元测试,需要进行下面修改:

import "github.com/goravel/framework/testing/mock"

mock.Validator

// 修改为

import "github.com/goravel/framework/testing/mock"

mock.Validation

查看文档

support.Mysql 改名

Version: v1.8.0

如果您使用了 support.Mysql 等框架常量来进行数据库驱动的判断,需要进行如下修改:

import "github.com/goravel/framework/database/support"

support.Mysql
support.Postgresql
support.Sqlite
support.Sqlserver

// 修改为

import "github.com/goravel/framework/contracts/database/orm"

orm.Mysql
orm.Postgresql
orm.Sqlite
orm.Sqlserver

orm.Mysql 等新的常量为 orm.Driver 类型,可以使用 orm.Mysql.String() 方法转换为字符类型。

即将废弃 database.NewGormInstance

Version: v1.8.0

database.NewGormInstance 方法将在 v1.9.0 被废弃,当前版本尚可使用,如果您使用了该方法获取 gorm 实例,需要进行如下修改:

import "github.com/goravel/framework/database"

gorm, err := database.NewGormInstance(connection)

// 修改为

import "github.com/goravel/framework/database/gorm"

gorm, err := gorm.New(connection)

修复 Orm 并发安全的问题

Version: v1.8.1

修复当高并发访问时,第一次读取 facades.Orm 有可能返回 Nil。

修复 Mail 不能使用 25,465 端口发送邮件的问题

Version: v1.8.2

您现在可以使用 25,465,587 发送邮件了。

Route 支持 HTTPS

Version: v1.8.3

facades.Route 新增 RunTLS 方法,支持启动 HTTPS 服务器,详见文档