博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tp5,Service使用
阅读量:6194 次
发布时间:2019-06-21

本文共 3605 字,大约阅读时间需要 12 分钟。

C层,操控数据库,并处理页面数据展示。

M层,纯粹的操作自己所对应的数据库。
Service层,可以通用的处理一些逻辑计算,也可以将复杂的数据表处理整合到一起,也可以将复杂的业务逻辑整合到一起。

创建了一个CommonService

out_data = ['errno'=>0,'errdesc'=>'']; } public function set_err($errno,$errdesc) { $this->out_data['errno'] = $errno; $this->out_data['errdesc'] = $errdesc; } public function set_data($data) { $this->out_data['data'] = $data; }}

主要用于输出数据的设置。

用户层的服务,

set_err('10001','参数缺失'); return $this->out_data; } // 处理审核 $user = new UserModel(); $user_info = $user->where('id',$id)->find(); if (!$user_info) { $this->set_err('10002','用户不存在'); return $this->out_data; } if ($is_pass == 1) { // 通过 $edit_data = [ 'status' => UserModel::USER_STATUS_PASS, 'audit_time' => time() ]; } else { $edit_data = [ 'status' => UserModel::USER_STATUS_NOT_PASS, 'audit_time' => time() ]; } $user->startTrans(); $err_count = 0; $res = $user->save($edit_data,['id'=>$id]); if (!$res) { $err_count++; } if ($user_info['type'] == UserModel::USER_TYPE_PERSON) { $apply_info = [ 'type' => $user_info['type'], 'telphone' => $user_info['telphone'], 'realname' => $user_info['realname'], 'idcard' => $user_info['idcard'], 'work_unit' => $user_info['work_unit'], 'work_position' => $user_info['work_position'], 'is_party' => $user_info['is_party'], 'is_volunteer' => $user_info['is_volunteer'], ]; } else { $apply_info = [ 'type' => $user_info['type'], 'telphone' => $user_info['telphone'], 'realname' => $user_info['realname'], 'company_name' => $user_info['company_name'], 'legal_name' => $user_info['legal_name'], 'company_address' => $user_info['company_address'], ]; } $apply_info = json_encode($apply_info,JSON_UNESCAPED_UNICODE); // 写入日志 $log_data = [ 'uid'=>$user_info['id'], 'is_pass'=>$is_pass, 'reason' =>$reason, 'add_time' => time(), 'apply_info' => $apply_info ]; $user_audit_log = new UserAuditLogModel(); $add_res = $user_audit_log->save($log_data); if (!$add_res) { $err_count++; } if ($err_count > 0) { $user->rollback(); $this->set_err(10099,'操作失败,请重试'); return $this->out_data; } else { $user->commit(); $this->set_err(0,'操作成功'); return $this->out_data; } }}

里面操作了两个数据表,并使用事务。同时能够通过out_data将错误信息进行反馈到C层。

C层就简单多了。

// 审核用户public function audit_user() {    $id = $_POST['id'];    $is_pass = $_POST['is_pass'];    $reason = input('post.reason/s','无');    if (!$id) {        $this->json->setErr(10001,'缺少参数');        $this->json->Send();    }    if (!$is_pass) {        $this->json->setErr(10002,'缺少参数');        $this->json->Send();    }    $user_service = new UserService();    $res = $user_service->audit_user($id,$is_pass,$reason);    if ($res['errno'] == 0) {        $this->json->setErr(0,'操作成功');        $this->json->Send();    } else {        $this->json->setErr($res['errno'],$res['errdesc']);        $this->json->Send();    }}

经过Service的处理,C层和M层之间多了一个中间层。它不仅仅可以处理数据库的数据,它还可以处理各种验证之类的事情。计算之类的事情。

Service层很有意思。

转载地址:http://fbyca.baihongyu.com/

你可能感兴趣的文章
贝叶斯分类器
查看>>
输入长整形数据输出对应的十六进制字符串
查看>>
Swing的Look And Feel机制研究
查看>>
linux 使用记录
查看>>
博客网站参考
查看>>
冒泡排序
查看>>
【OCP-12c】CUUG 071题库考试原题及答案解析(23)
查看>>
HDU 2501 Tiling_easy version
查看>>
monitoring_db
查看>>
http_load分析(转)
查看>>
windows 环境下在anaconda 3中安装python2和python3两个环境(python2和python3共存)
查看>>
Codeforces 758A Holiday Of Equality
查看>>
Cloest Binary Search Tree Value II
查看>>
在word中输入任意角度旋转图片
查看>>
网站伪静态的好处与坏处
查看>>
《JAVA程序设计与实例》记录与归纳--继承与多态
查看>>
pytorch torchvision.ImageFolder的使用
查看>>
ROS 框架整体学习
查看>>
面试总结之人工智能AI(Artificial Intelligence)/ 机器学习(Machine Learning)
查看>>
Vijos P1303 导弹拦截【最长上升子序列+DP】
查看>>