## 基础控制器
```
~~~
namespace app\api\controller;
use app\api\service\Token;
use think\Controller;
class BaseController extends Controller
{
protected function checkExclusiveScope()
{
Token::needExclusiveScope();
}
protected function checkPrimaryScope()
{
Token::needPrimaryScope();
}
protected function checkSuperScope()
{
Token::needSuperScope();
}
}
~~~
```
##
## 其他控制器继承这个
```
~~~
namespace app\api\controller\v1;
use app\api\controller\BaseController;
use app\api\model\User;
use app\api\model\UserAddress;
use app\api\service\Token;
use app\api\service\Token as TokenService;
use app\api\validate\AddressNew;
use app\lib\exception\SuccessMessage;
use app\lib\exception\UserException;
use think\Controller;
use think\Exception;
class Address extends BaseController
{
protected $beforeActionList = [
'checkPrimaryScope' => ['only' => 'createOrUpdateAddress,getUserAddress']
];
/**
* 获取用户地址信息
* @return UserAddress
* @throws UserException
*/
public function getUserAddress(){
$uid = Token::getCurrentUid();
$userAddress = UserAddress::where('user_id', $uid)
->find();
if(!$userAddress){
throw new UserException([
'msg' => '用户地址不存在',
'errorCode' => 60001
]);
}
return $userAddress;
}
/**
* 更新或者创建用户收获地址
*/
public function createOrUpdateAddress()
{
$validate = new AddressNew();
$validate->goCheck();
$uid = TokenService::getCurrentUid();
$user = User::get($uid);
if(!$user){
throw new UserException([
'code' => 404,
'msg' => '用户收获地址不存在',
'errorCode' => 60001
]);
}
$userAddress = $user->address;
// 根据规则取字段是很有必要的,防止恶意更新非客户端字段
$data = $validate->getDataByRule(input('post.'));
if (!$userAddress )
{
// 关联属性不存在,则新建
$user->address()
->save($data);
}
else
{
// 存在则更新
// fromArrayToModel($user->address, $data);
// 新增的save方法和更新的save方法并不一样
// 新增的save来自于关联关系
// 更新的save来自于模型
$user->address->save($data);
}
return new SuccessMessage();
}
}
~~~
```
- tp5图片上传
- 文件上传到七牛云
- 上传到阿里云
- 富文本编辑器
- phpexcel和spreadsheet
- phpexcel导出
- phpexcel导入
- spreadsheet
- tp5_api接口
- 跨域请求
- JWT
- 图片和视频上传接口
- 验证码
- tp5小程序登录
- tp5小程序支付
- tp5基础架构
- 验证层
- 模型层Model
- 控制器构找
- tp5.0支付宝
- 海报二维码
- 轮播图
- echarts柱状图
- layui的图片弹窗
- p标签显示指定行数(全部)
- jquery和layerdate调用日期
- ajax发送文件和图片的坑啊
- JS日期点击上一天和下一天
- 百度分享js
- POST请求
- 商品数据表
- tp5.0支付宝最全
- tp5路由的坑
- 二维数组排序
- tp5模型分组group错误
- 二维变一维数组
- 无限树形结构
- json对象转数组
- 模型关联查询
- tp5的模型获取器和字段设定
- 经纬度获取距离排序