# 服务层的应用 >[info] 现在后台应用程序需要对多平台进行支持,比如说APP端接口,Web端,手机H5数据,微信小程序,微信平台等第三方数据接口支持. >[danger] 为了兼容多个平台,同时增加代码的通用性,系统的统一性/兼容性,减少系统维护成本和效率,那么一个能统一处理程序逻辑的需求就呼之欲出. >我暂且把解决这个需求的代码叫做服务层.控制器中只负责接收数据,判断权限,然后把所有的逻辑处理统一丢给服务层. > ### 通过DateEite类将控制器引导到服务层 ~~~ /** * @title 设备签到 * @description * @author Mikkle * @url /api/app.terminal/sign * @method POST * @param_send name:terminal_mac type:string require:1 default:40字符以内 other: desc: * @param_return park_list:站点列表 */ public function sign(){ try{ $operate = DataEdit::instance(); $result = $operate->setParameter([ OptionsCenter::$fieldTerminalMac =>"terminal_mac", ])->setValidate(false) ->setModel("base/app/terminal") ->setModelType("service") ->execModelAction("terminalSign"); if ($result===false){ throw new Exception($operate->getError()); } return $result; }catch (Exception $e){ Log::error($e->getMessage()); return ShowCode::jsonCodeWithoutData(1008,$e->getMessage()); } } ~~~ 更多示例 参见 DataEdit快捷操作类库 https://www.kancloud.cn/mikkle/thinkphp5_study/462704 感谢大家关注 交流请加QQ群 321449759 ![](https://box.kancloud.cn/3499008a08e64306c68873288092a057_286x340.png)