- 🏠 简介
- 🔌 api接口
-
🔧 插件开发
- 介绍
- 插件优势
- 新建插件
- 技术栈
- 插件开发规范
- 插件目录结构
- model 层开发
- service 层开发
- api 接口开发
- menu 菜单开发
-
event 事件钩子开发
- 开发指南
- 常用事件
- SiteInit 站点初始化事件
- AddSiteAfter 站点创建后事件
- MemberRegister 会员注册后事件
- MemberLogin 会员登录后事件
- PayCreate 支付创建事件
- PaySuccess 支付成功事件
- RefundSuccess 退款成功事件
- TransferSuccess 转账成功事件
- BottomNavigation 底部导航事件
- NoticeData 消息模板数据内容事件
- GetQrcodeOfChannel 创建二维码事件
- ExportDataType 导出数据类型事件
- ExportData 导出数据源事件
- GetPosterType 海报类型事件
- GetPosterData 海报数据事件
- ShowCustomer 应用管理加载事件
- GetWechatTransferTradeScene 微信支付转账场景事件
- ThemeColor 主题风格事件
- initWap 手机端初始化加载事件
- dict 数据字典开发
- layout 自定义布局开发
- job 消息队列和计划任务开发
- notice 消息发送开发
- printer 小票打印模板开发
- export 数据导出开发
- diy 自定义组件/页面装修开发
- diy 自定义表单组件开发
- poster 自定义海报开发
- icon 引入图标
- 支付方式开发
- upgrade 插件版本升级
- 打包插件
- 授权信息变更回调通知
- 官网上架
- 📝 二次开发须知
- 👨💻 二次开发指导
-
🎬 二次开发应用插件视频教程
- 二次开发安装视频教程
- 准备工作与创建插件
- 插件目录整体说明
- 插件admin目录
- 插件app目录说明(adminapi、api、验证器)
- 插件app目录(dict、job)
- 插件app目录说明(lang、listener)
- 插件app目录说明(model、service)
- 插件uniapp目录说明
- 插件开发之后台功能开发(代码生成器)
- 插件开发之uniapp功能开发(api)第一节
- 插件开发之uniapp功能开发(api)第二节
- 插件开发之uniapp功能开发(api)第三节
- 插件安装与打包原理
- 消息队列开发
- 计划任务开发
- DIY组件和自定义页面装修开发
- 支付接口开发
- 插件升级包打包流程以及云编译功能
一对一关联
模型关联用于定义不同模型之间的关系,简化多表查询操作。
一对一关联语法说明
一对一关联的基本语法格式如下:
/**
* 关联描述
* @return \think\model\relation\[关联类型]
*/
public function [关联名称]()
{
return $this->[关联方法]('目标模型类名', '外键', '主键');
}
例如:一对一关联
/**
* 关联默认商品规格
* @return \think\model\relation\HasOne
*/
public function goodsSku()
{
return $this->hasOne(GoodsSku::class, 'goods_id', 'goods_id');
}
语法要点:
-
方法名即为关联名称,使用驼峰命名法
-
返回类型通常为
\think\model\relation\*系列类 -
关联方法:
hasOne: 一对一关联(当前模型有一个关联模型) -
关联参数:
-
第一个参数(必须):关联的模型类名(完整命名空间)
-
第二个参数(可选):关联模型的外键。默认的外键规则是当前模型名(不含命名空间,下同)+_id
-
第三个参数(可选):当前模型的主键,默认会自动获取也可以指定传入
-
使用方式:
$search_model = $this->model->field($field)->withJoin([ 'goodsSku' => [ 'sku_id', 'sku_name', 'sku_image', 'sku_no' ] ])
如图:
