本文主要是介绍筋斗云接口编程 / 对象型接口(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
定制操作类型和字段
对象接口通过继承AccessControl类来实现,默认允许5个标准对象操作,可以改写属性$allowedAc
来限定允许的操作:
class AC_ApiLog extends AccessControl
{protected $allowedAc = ["get", "query"];// 默认值为 ["add", "get", "set", "del", "query"]
}
缺省get/query操作返回ApiLog的所有字段,可以用属性$hiddenFields
隐藏一些字段,比如不返回”addr”和”tm”字段:
class AC_ApiLog extends AccessControl
{protected $hiddenFields = ["addr", "tm"];
}
对于add/set接口,可用$requiredFields
设置必填字段,用$readonlyFields
设置只读字段。
特别地,”id”字段默认就是只读的,无须设置。
示例:实现下面控制逻辑
- “addr”字段为必填字段,即在add接口中必须填值,在set接口中不允许置空;
- “tm”字段为只读字段,即在add/set接口中如果填值则忽略(但不报错);
- 在add操作中,由程序自动填写”tm”字段。
class AC_ApiLog extends AccessControl
{protected $requiredFields = ["addr"];protected $readonlyFields = ["tm"];// 由add/set接口回调,用于验证字段(Validate),或做自动补全(AutoComplete)工作。protected function onValidate(){if ($this->ac == "add") {$_POST["tm"] = date(FMT_DT);}}
}
例中使用回调onValidate来对tm字段自动填值。
上面用到的常量FMT_DT是框架定义的标准日期格式,常用于格式化日期字段传到数据库。
如果某些字段是在添加时不是必填,但更新时不可置空,可以用$requiredFields2
来设置;
类似地,添加时可写,更新时只读的字段,用$readonlyFields2
来设置。
这篇关于筋斗云接口编程 / 对象型接口(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!