定义新的接口
本文介绍一下CRMEB多商户二次开发的操作流程,从创建数据库,到实现一个完整添加数据的过程,其他更多方法实现只是路由和方法名的差异。

一、创建数据库
例如数据库名为:eb_is_test

字段为:id,name

CREATE TABLE eb_is_test (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
name varchar(111) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、创建必要文件
为了更好的管理我给这个模块单独增加一个test文件目录。

创建model
路径:app/common/moel/test/IsTest.php

<?php namespace app\common\model\test; use app\common\model\BaseModel; class IsTest extends BaseModel { public static function tablePk(): ?string { return 'id'; } public static function tableName(): string { return 'is_test'; } } 创建dao文件 路径 :app/common/dao/test/IsTestDao.php <?php namespace app\common\dao\test; use app\common\dao\BaseDao; use app\common\model\test\IsTest; class IsTestDao extends BaseDao { protected function getModel(): string { return IsTest::class; } } 创建repository文件 路径:app/common/repository/test/IsTestRepository.php <?php namespace app\common\repositories\test; use app\common\dao\test\IsTestDao; use app\common\repositories\BaseRepository; class IsTestRepository extends BaseRepository { protected $dao; public function __construct(IsTestDao $dao) { $this->dao = $dao; } } 创建contorller 平台后台的操作就创建在admin目录,商户创建在merchant目录,用户创建在 api 目录 路径:app/conotroller/admin/test/IsTest.php <?php namespace app\controller\admin\test; use app\common\repositories\test\IsTestRepository; use crmeb\basic\BaseController; use think\App; class IsTest extends BaseController { protected $repository; public function __construct(App $app,IsTestRepository $repository) { parent::__construct($app); $this->repository = $repository; } } 这样我们的必备的几个基础文件就好了,以上每个文件中的方法,都是必须创建的,否则会报错。 controller主要是针对路由对外访问的接口方法 repository就是写一些公用的会重复利用的逻辑处理等方法 dao针对数据库的操作 model定义数据表映射对象 三.创建新的接口,开发功能 因为是平台功能,就在route/admin.php文件增加路由,修改路由文件后记得重启一下swoole服务。 Route::group('is_test',function(){ Route::post('create', '/create')->name('systemIsTestCreate'); })->prefix('admin.test.IsTest); 在controller文件中写相对应的功能,创建方法create <?php namespace app\controller\admin\test; use app\common\repositories\test\IsTestRepository; use crmeb\basic\BaseController; use think\App; class IsTest extends BaseController { protected $repository; public function __construct(App $app,IsTestRepository $repository) { parent::__construct($app); $this->repository = $repository; } public function create() { $data = $this->request->params(['name']); $this->repository->create($data); return app('json')->success('添加成功'); } } 这样我们的一个添加数据的功能就完成了,当然如果有更多数据和逻辑需要处理,就可以在IsTestRepository 这个文件中创建一个create()方法,然后做想相对应的处理,比如把name存储为json字符串 <?php namespace app\common\repositories\test; use app\common\dao\test\IsTestDao; use app\common\repositories\BaseRepository; class IsTestRepository extends BaseRepository { protected $dao; public function __construct(IsTestDao $dao) { $this->dao = $dao; } public function create($data) { $data = [ 'name' => json_encode($data) ]; $this->dao->create($data); } } 如果需要调用别的控制器的方法可以是用make方法,例如想在添加的时候调用user表查看数据 <?php namespace app\common\repositories\test; use app\common\dao\test\IsTestDao; use app\common\repositories\BaseRepository; use app\common\repositories\user\UserRepository; class IsTestRepository extends BaseRepository { protected $dao; public function __construct(IsTestDao $dao) { $this->dao = $dao; } public function create($data) { //$user = app()->make(UserRepository::class)->get(1); //此处方法和上面一行的写法一致,只是这样写可以不用重复make $make = app()->make(UserRepository::class); $user = $make->get(1); $data = [ 'name' => json_encode($data) ]; $this->dao->create($data); } }

CRMEB多商户二开教程1相关推荐

  1. CRMEB多商户二开教程3

    **创建新的组合数据** 本文给大家介绍CRMEB多商户如何创建,维护,使用组合数据功能. 创建组合数据规则 先找到组合数据管理页面,点击添加组合数据按钮 创建组合数据规则 这里以首页banner数据 ...

  2. CRMEB多商户二开教程2

    **创建新的页面** 新建一个页面的流程 一. 在原来的文件夹中添加一个新的页面: 比如在product文件夹下新建一个商品保障服务的页面productGuarantee 首先在views目录下的pr ...

  3. crmeb多商户二开crmeb多商户授权失败

    crmeb多商户二开crmeb多商户授权失败 如果测试域名crmeb-test.授权域名 提示授权失败, 例如: 授权域名 mer.crmeb.net, 则测试域名为crmeb-test.mer.cr ...

  4. CRMEB多商户二开流程介绍

    本文介绍一下CRMEB多商户二次开发的操作流程,从创建数据库,到实现一个完整添加数据的过程,其他更多方法实现只是路由和方法名的差异,也就不过多赘述. 一.创建数据库 例如数据库名为:eb_is_tes ...

  5. crmeb多商户二开更换短信模板二开文档

    使用多商户系统的时候,可能某些短信的模板并不太符合我们的需求,所以需要修改短信的模板及发送的短信内容,这里演示一下完整的操作. 一.申请短信模板 这里申请后等待审核,也可以联系客服或者售后技术处理,{ ...

  6. crmeb多商户二开crmeb类库二开文档 Basic基类【1】

    Basic基类 目录结构 ├─basic │ BaseController.php │ BaseManager.php │ BaseMessage.php │ BaseStorage.php │ Ba ...

  7. crmeb多商户二开退款流程文档

    退款流程 一. 申请退款 \app\controller\api\store\order\StoreRefundOrder::refund 业务逻辑: 检查订单状态 检查退款数量,退款金额 创建退款单 ...

  8. crmeb 多商户app打包教程

    crmeb 多商户app打包教程 App打包(使用Hbuilder进行App打包) 一.修改接口地址 1.打开uni-app下config/app.js修改接口地址,将下图两个地址修改成您的域名 二. ...

  9. crmeb开源版二开好方便

    crmeb使用thinkphp6框架就能行底层逻辑的搭建,thinkphp是一款非常好用的框架也容易上手,开发教程又多加之crmeb开源版对目录结构.代码功能.数据库字典一一列出,方便有需要的开发者对 ...

最新文章

  1. 2019年全球企业人工智能发展现状分析报告
  2. java不能修改表_java中不可修改列表的类型是什么
  3. 树莓派3b+在tf卡配置wifi连接+ssh
  4. DICOM 开发工具总结
  5. 【效率】这个神器可以摆脱变量命名纠结!
  6. 合工大计算机研究生毕业工资,合肥工业大学2019届薪酬统计
  7. 公差基本偏差代号_508/f7:基本偏差怎么查,标准公差又怎么查?
  8. SURF特征提取分析(一)
  9. vue 使用axios发送的请求使用md5加密
  10. python时间序列预测不连续怎么办_手把手教你用Python处理非平稳时间序列(附代码)...
  11. C# in Depth
  12. Protel99SE多张原理图的设计步骤
  13. 网线连接威纶触摸屏失败的解决方法
  14. mysql 1236错误_mysql故障~Got fatal error 1236 解决方法
  15. VMware教程:设置 CentOS 7 共享文件夹
  16. 2022年国庆红旗头像制作微信小程序源码
  17. Linux基本操作1
  18. android app安装的过程,Pm install App流程
  19. 加密衍生品赛道异军突起 CBOEX如何做到攻守兼备灵巧破局?
  20. 搞不定Serverless?让你秒懂掌握Profiling让一份程序优雅自适应

热门文章

  1. Matlab舌体分割,中医舌体图像自动分割算法的研究
  2. 深入解析SpringBoot核心运行原理和运作原理源码
  3. [附源码]Python计算机毕业设计SSM基于协同过滤算法的甜品推荐系统(程序+LW)
  4. 替换法(代入法)求解递归式
  5. vue请求数据放在created好还是mounted里好
  6. 技术笔记:如何在win10操作系统中卸载自带的office(前提是无法在控制面板中卸载)
  7. 项目实战——产品设计
  8. BatchFormer:有效提升数据稀缺场景的模型泛化能力|CVPR2022
  9. Laravel博客系统开发--邮件操作(忘记/重置密码)
  10. 暴雪中国:上周与网易探讨顺延六个月现有游戏服务协议遭拒绝