针对mingdaoyun的API封装的PHP-SDK包
- 封装基础API
- 固定数据的CRUD
- syncToDB 功能
- 明道云组织架构接口
$ composer require lany/mingdaoyun-
Laravel (>=5.5)
1.2.0开始支持发布配置文件
$ php artisan vendor:publish --provider="Lany\MingDaoYun\Provider\ServiceProvider"修改.env,添加配置
MINGDAOYUN_APP_KEY=xxx
MINGDAOYUN_SIGN=xxx
MINGDAOYUN_HOST=http://xxx.com示例代码
use Lany\MingDaoYun\MingDaoYun;
class IndexController extends Controller
{
//依赖注入方式
public function index(MingDaoYun $mdy)
{
$data = $mdy->table('60efbf797b786d8a492bfcee')->get();
dd($data);
}
//实例化服务方式
public function index1()
{
$data = app('mdy')->table('60efbf797b786d8a492bfcee')->get();
dd($data);
}
}
- ThinkPHP (>=5.1)
1.2.0开始支持
5.1请手动use Lany\MingDaoYun\Facade\MingDaoYun;使用,6.0以上可以使用下面的方式
修改.env,添加配置
MINGDAOYUN_APP_KEY=xxx
MINGDAOYUN_SIGN=xxx
MINGDAOYUN_HOST=http://xxx.com示例代码
class Index extends BaseController
{
public function hello($name = 'ThinkPHP6')
{
$data = app('mdy')->table('60efbf797b786d8a492bfcee')->get();
var_dump($data);
}
}- Other
require __DIR__.'/vendor/autoload.php';
use Lany\MingDaoYun\Facade\MingDaoYun;
$appKey = "APPKEY"; //明道云APPKEY
$sign = "SIGN"; //明道云SIGN
$host = "http://xxx.xxx.com"; //私有部署域名
$mdy = MingDaoYun::init($appKey, $sign, $host);
$data = $mdy->table('worksheetId')->get();- init
- table
- limit
- page
- fieldMap
- with
- sort
- whereOr
- where
- whereIn
- whereNull
- whereNotNull
- whereDate
- whereNotDate
- get
- find
- relations
- view
- insert
- create
- delete
- update
- updateRows
- all
- count
- dateRange
- notDateRange
- customize
- 同步数据到本地数据库
- workflow
- notGetTotal
- whereBetween
- whereNotBetween
- whereGroup
设置初始化参数
$mdy = MingDaoYun::init('APPKEY', 'SIGN', '部署域名');设置工作表
$mdy->table('worksheetId');要获取的数据行数
$mdy->table('worksheetId')->limit(5);设置页码
$mdy->table('worksheetId')->page(5);获取字段对照关系(明道云工作表结构)
$mdy->table('worksheetId')->fieldMap();要获取关联记录时,设置rowId,controlId
$mdy->table('worksheetId')->with('rowId', 'controlId');获取关联记录
1.1.1修改为默认获取100条关联记录,relations(true)获取所有关联记录
$mdy->table('worksheetId')->with('rowId', 'controlId')->relations();设置排序字段,默认为升序
$mdy->table('worksheetId')->sort('field', $bool);设置筛选条件,以or的方式拼接下一个条件,使用whereOr时必须写在where()之前
$mdy->table('worksheetId')->whereOr('field', '=', '123');设置筛选条件,以and的方式拼接下一个条件,目前支持的运算符有
contains,notContain,startWith,endWith,=,!=,>,>=,<,<=,RCEq,RCNe
$mdy->table('worksheetId')->where('field', '!=', '123');wehreIn
$mdy->table('worksheetId')->whereIn('field', ['Lany', 'Todd', 'Dom']);字段为空
$mdy->table('worksheetId')->whereNull('field');字段为不为空
$mdy->table('worksheetId')->whereNotNull('field');日期是
$mdy->table('worksheetId')->whereDate('field', '2022-02-22');日期不是
$mdy->table('worksheetId')->whereNotDate('field', '2022-02-22');获取工作表内容
1.1.0修改为默认最多获取1000条数据,如需获取更多数据请使用limit设置,获取所有数据请使用all
$mdy->table('worksheetId')->limit(1)->page(1)->get();获取单条记录(行记录详情)
$mdy->table('worksheetId')->find('rowId');设置视图ID
$mdy->table('worksheetId')->view('view')->get();新增单条记录,按明道云新增controls参数格式传入data即可
$data = [
['controlId' => 'controlId', 'value' => 'value'],
['controlId' => 'controlId', 'value' => 'value'],
];
$mdy->table('worksheetId')->insert($data);批量新增记录,按明道云批量新增rows参数格式传入data即可
$data = [
[
['controlId' => 'controlId', 'value' => 'value'],
['controlId' => 'controlId', 'value' => 'value'],
],
];
$mdy->table('worksheetId')->create($data);删除行记录,多条记录以
,分隔rowId
$mdy->table('worksheetId')->delete('rowId');更新单行记录
$update = [
['controlId' => '60efbf797b786d8a492bfce2', 'value' => '波波波力'],
['controlId' => '60efbf797b786d8a492bfce5', 'value' => '波波波力力力力力'],
];
$mdy->table('worksheetId')->update('rowId', $update);批量更新行记录,(目前明道只支持每次更新一个字段)
$rowIds = [
'rowId1', 'rowId2'
];
$update = [
'controlId' => 'controlId', 'value' => 'value'
];
$mdy->table('worksheetId')->updateRows($rowIds, $update);获取所有数据
此方法为1.1.0新增
$mdy->table('worksheetId')->all();统计数据行数
此方法为1.1.0新增
keyword默认为空
$mdy->table('worksheetId')->count($keyword);此方法为1.4.0新增
日期区间
支持Today,Tomorrow,Yesterday,ThisWeek,Next7Day,Last14Day等,具体可查看明道云文档 DateRange
$mdy->table('worksheetId')->dateRange('plan_date', 'Next14Day')->get();此方法为1.4.0新增
不在日期区间 支持
Today,Tomorrow,Yesterday,ThisWeek,Next7Day,Last14Day等,具体可查看明道云文档 DateRange
$mdy->table('worksheetId')->notDateRange('plan_date', 'Next14Day')->get();此方法为1.4.0新增
自定义查询条件,按官方文档的格式传入数组参数
$customize = [
"controlId" => "62d903e1347b8802573306d3",
"dataType" => 30,
"spliceType" => 1,
"filterType" => 2,
"value" => "Jinji"
]
$mdy->table('worksheetId')->customize($customize)->get();
1.4.2是否触发工作流 默认为true
$mdy->table('worksheetId')->workflow(false);
1.4.2是否不统计总行数以提高性能 默认为false
$mdy->table('worksheetId')->notGetTotal(true);$mdy->table('worksheetId')->whereBetween('fq_time', ['2023-11-01 7:00:00', '2023-12-21 7:00:00']);$mdy->table('worksheetId')->whereNotBetween('fq_time', ['2023-11-01 7:00:00', '2023-12-21 7:00:00']);
1.2.0新增Laravel和ThinkPHP5.1如果不存在数据表会自动创建(ThinkPHP6需先手动创建数据表),以明道云字段别名创建数据字段,如不存在别名则使用明道控件ID创建
- 修改对应的
Model文件
class ProductItem extends Model implements SyncAdapter
{
//Laravel
use LaravelAdapter;
//ThinkPHP
use ThinkPHPAdapter;
}- 调用
syncToDB
$data = app('mdy')->table('60efbf797b786d8a492bfcee')->all();
\App\Models\ProductItem::syncToDB($data);
//或者传入MingDaoYun实例
$data = app('mdy')->table('60efbf797b786d8a492bfcee')->limit(1);
\App\Models\ProductItem::syncToDB($data);1.5.0新增
whereGroup($callable, $spliceType), spliceType为and/or,默认为and
$mdy->table('60f631095d106d99c054e0bd')->whereGroup(function(\Lany\MingDaoYun\MingDaoYun $mdy) {
$mdy->whereOr('user', '=', 'Lany')->where('friend', '=', 'Dom');
})->where('desc', '=', 'test')MIT