项目的go.mod文件中,必须为 module goravel 否则会出现错误
module goravel
artisan 是一个适配 goravel 的go的运行环境,可以在该环境下执行go语言的语法,与浏览器的控制台运行js代码同理,如输入1+1回车会得到结果2,扩展实现了goravel的内置功能,如数据库db操作,orm操作,cache缓存,秘钥key生成,jwt秘钥等。
artisan命令行使用了三方库yaegi作为基础,该库是一个go语言的解释器,可以执行go语言代码,该扩展包在yaegi的基础上,扩展了goravel的内置功能,如数据库db操作,orm操作,cache缓存,秘钥key生成,jwt秘钥等。
- 克隆该扩展包,然后放入packages/目录下
- 注册服务提供者,config.app中:
import "goravel/packages/tinker"
"providers": []foundation.ServiceProvider{
...
&tinker.ServiceProvider{},
}
- 系统命令:``go run . artisan tinker` 进入tinker环境,根据提示完成操作
- 命令行执行:
go generate go generate ./...
生成代码 - 命令行执行:
go mod tidy
清理依赖
db.Find("depts")
db.WhereMap("users",map[string]interface{}{"name":"市场部-经理"})
db.WhereNot("users",map[string]interface{}{"name":"市场部-经理"})
db.WhereNotEqual("users","name","市场部-经理")
db.WhereIn("users","name", []string{"市场部-经理", "市场部-主管"})
db.WhereLike("users","name", "市场部")
db.WhereBetween("users","created_at", `2024-08-22 00:00:00`, `2024-08-23 23:59:59`)
连续输入问题:使用方式为,进入orm下,命令行输入shebang回车,进入shebang多行命令行模式,编写完成后,输入命令:save保存回车,查看命令执行结果,默认引入了goravel/app/models模型。
- 函数调用参考gorm官方实现方式,可查看gorm官方文档
- 示例:orm命令行模式下,控制台参考命令如下,
bash go run . artisan tinker
- 选择orm菜单,进入orm tinker环境 // 2-上下箭头选择选项,回车进入
- 输入命令:
shebang
// 进入shebang多行命令行模式 - 进入多行语法环境模式 // 3-进入go 语言环境
users := []models.User{} //4-编写完成后回车
query.Model(&models.User{}).Where("name LIKE ?", "%市场%").Find(&users) //5-编写完成后回车
:save //6-输入:save 后回车保存查看执行结果
user:=models.User{} //1-编写完成后回车
query.Model(&models.User{}).Where("name LIKE ?", "%小%").FindOne(&user) //2-编写完成后回车
:save //3-输入:save 后回车保存查看执行结果