# 模型开发指南
这里主要讲在业务开发中CURD的处理.
## 获取器 Attr
使用场景:额外需要的字段或者列表需要进一步处理
具体文档请看[获取器](https://www.kancloud.cn/manual/thinkphp5/135192)
```
// 1 如果一个字段数据库不存在则使用获取器,比如小打卡创建了多少天
public function getDurationAttr($value,$data){
// $data 是实例数据
return $time - $data['create_time'];
}
// 该字段需要写入attr文档中
// 2 如果一个字段数据库存在,但是不能直接使用,比如要给手机号码前加86
public function getTelAttr($value,$data){
// $data 是实例数据
return "+86 ".$value;
}
// 该字段无需加入文档
```
## 关联 With
使用场景:有实质性关联关系
```
// 无论是何关联关系,都需要在模型中定义
// 一对一 略
// 一对多
public function Sign(){
return $this->hasMany('Sign');
}
// 多对多
public function Fav(){
return $this->belongsToMany('User','xdk_plan_fav'); // attach detach
}
// 关联的函数都可以使用with在前端使用
```
## 验证器
```
// 模拟注册时的数据验证
public function register(){
$data = request()->only(['username']);
$validate = new \app\xdk\validate\User();
$result = $validate->scene('register')->check($data);
if(!$result){
return json(['error'=>$validate->getError()],422);
}
$result =$this->create($data);
return json($result);
}
```
## 函数
```
// 模型中的所有public属性的函数都可以在前端执行,因此需要做安全工作
// 可访问
public function rank(){
}
// 不可访问
protected function rank(){
}
```
- 首页
- APP
- 调试
- 部分问题解答
- IM
- 魔工坊APP框架
- 前端
- npm
- MogoAjax
- ES6
- javascript规范
- weui
- 微信小程序
- Mock数据伪造
- Mogo-Css
- O2-Upload
- 七牛图片处理
- 前端调试
- 后端
- 魔工坊海豚PHP
- 文件上传
- O2-Comments
- 前端API
- 消息
- Excel导入/导出
- 阿里短信
- dolphinPHP
- Thinkphp
- 海豚PHP
- 创建项目
- 人人商城与海豚同步问题
- mysql
- 发送HTTP请求
- 支付
- 个推
- 接口开发须知
- 生成海报
- 音频转换
- openssl
- App上架的故事
- 安卓签名问题
- 苹果账号申请
- 各个平台上架内容
- 文案小姐姐的文档
- 微信支付申请流程
- 备案的故事
- 企业支付宝认证
- 微信公众问题
- 微信开放平台与上架应用
- 小程序特殊行业所需材料
- 模型文档模板
- 必读规范
- 跨域
- 前后端数据通讯接口规范
- Restful风格API规范
- 服务器
- SSL中间证书
- Git篇章
- MogoSDK
- 文档模板
- PHP
- 使用
- 概念
- User
- 模型
- 文档书写
- JS
- 安装
- 初始化
- 用户
- 状态管理
- 查询
- 执行函数
- 请求
- 上传
- MogoH5+