介面返回前回撥
介面返回前回撥
示例:新增訂單到Ordr表時,自動新增一條"建立訂單"日誌到OrderLog表,可以這樣實現:
class AC1_Ordr extends AccessControl
{
protected function onValidate()
{
if ($this->ac == "add") {
...
$this->onAfterActions[] = function () {
$orderId = $this->id;
$sql = sprintf("INSERT INTO OrderLog (orderId, action, tm) VALUES ({$orderId},'CR','%s')", date('c'));
execOne($sql);
};
}
}
}
屬性$this->onAfterActions
是一個回撥函式陣列,在操作結束時被回撥。
屬性$this->id
可用於取add操作結束時的新物件id,或get/set/del操作的id引數。
物件介面呼叫完後,還會回撥onAfter函式,也可以在這個回撥裡面操作。 此外,如要在get/query介面返回前修改返回資料,用onHandleRow回撥函式更加方便。
示例:實現介面
Ordr.get(id) -> {id, status, ..., statusStr?}
Ordr.query() -> tbl(同get介面欄位...)
- status: "CR" - 新建立, "PA" - 已付款
- statusStr: 狀態名稱,用中文表示,當有status返回時則同時返回該欄位
class AC1_Ordr extends AccessControl
{
static $statusStr = ["CR" => "未付款", "PA" => "待服務"];
// get/query介面會回撥
protected function onHandleRow(&$rowData)
{
if (isset($rowData["status"])) {
$st = $rowData["status"];
$rowData["statusStr"] = @self::$statusStr[$st] ?: $st;
}
}
}
相關文章
- 微博回撥介面
- java介面回撥Java
- AndroidAdapter回撥介面AndroidAPT
- java 介面回撥經典案例--網路請求回撥Java
- Java介面回撥機制詳解Java
- Java_介面回撥與匿名內部類Java
- 統一管理專案中的介面回撥
- [JS]回撥函式和回撥地獄JS函式
- 介面回撥的原理:介面變數 呼叫 被類實現的介面的方法變數
- Activity生命週期回撥是如何被回撥的?
- 回撥函式函式
- 非同步/回撥非同步
- JS 回撥模式JS模式
- C++回撥C++
- js 回撥 callbackJS
- 一個Demo帶你理解Android介面回撥機制Android
- java回撥函式-非同步回撥-簡明講解Java函式非同步
- 【詳細、開箱即用】.NET企業微信回撥配置(資料回撥URL和指令回撥URL驗證)
- 淺析微信支付:申請退款、退款回撥介面、查詢退款
- JavaScript 回撥函式JavaScript函式
- JavaScript回撥函式JavaScript函式
- JS—回撥函式JS函式
- 簡單理解回撥
- 動畫回撥函式動畫函式
- Java——回撥機制Java
- jni回撥java方法Java
- Java--回撥模型Java模型
- java回撥函式Java函式
- 回撥函式(CallBack)函式
- C++屌屌的觀察者模式-同步回撥和非同步回撥C++模式非同步
- 回撥函式的作用函式
- TLS回撥函式(Note)TLS函式
- java 回撥函式示例Java函式
- Python回撥函式Python函式
- 設計模式:回撥模式設計模式
- android回撥函式Android函式
- 回撥機制詳解
- 函式回撥(C++)函式C++