tp5 常规项目开发的封装和复用
在做tp5项目的时候,比如做一个权限编辑的时候,如图
简单的一个编辑操作,在控制器editC方法中写了好多的代码, 这种操作在项目是比较常见的。一个控制器中写这么多代码,怎么看也不优雅。 怎么对这些代码进行很好的封装,简化控制器中的代码,更好的复用,也让代码更优雅一点,就这段代码而言,怎么进行改进?
public function editC(){
//获取id,分配旧数据,注意父规则的分配
$where[$this->pk]=intval($this->request->param('id'));
$oldData=Db::table('addons_auth_rule')->where($where)->select();
//编辑的父规则,不可以为自身和子规则
$tmp=Db::table('addons_auth_rule')->select(); //数据库读取整个规则表
$pid=(new Arr)->unlimited_notchild($tmp,$where[$this->pk],'rid');//根据当前id,查找规则表中的非子类的数据
$treeParent=(new Arr())->tree($pid,'title','rid');//对数据进行树形处理
View::share(['oldData'=>$oldData[0],'parent'=>$treeParent]);
//获取新数据,并入库
if($this->request->isPost()){
$data=$this->request->param('','','strip_tags,trim');
//filedCover 方法,为将表单提交过来的字段名转换为数据库中的字段名
$data=$this->filedCover($data,['id'=>'rid']);
//使用验证器进行数据验证
$check=$this->validation('\aop\validate\Rule',$data,'edit');
if($check['status']==0){
$this->error($check['msg']);
}
//模型中的编辑方法
$res=$this->model->edit($data);
($res['status']=='success')?$this->success($res['msg'],'listC'):$this->error($res['msg'],'listC');
}
return view();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论