thinkphp中try catch的运用

 1 public function doedit_set(){
 2     $info=$this->_post("info");
 3     $id=$this->_post("id");//dump($info);exit();
 4     $user=DD("Order.OrderPackage")->deal_account($info[‘accounts‘]);
 5     try{
 6         $result=DD(‘Set.UserSet‘)->doedit_setinfo($id,$info,$user);
 7         if($result){
 8            $this->success("编辑成功",U("Userset/index"));
 9         }
10         $this->error("编辑失败");
11     }catch(Exception $e){
12        $this->error($e->getMessage());
13     }
14 }
15
16
17
18 public function doedit_setinfo($id,$edit_info,$user_id)
19 {
20    if($id && $edit_info)
21    {
22         $res=M(‘user_set‘)->where(array(‘op_name‘=>$edit_info[‘op_name‘],‘id‘=>$id))->find();
23
24         if(!$res)
25         {
26             E("非法数据");
27         }
28
29         $md=new Model();
30         $md->startTrans();
31         $user_info=DD("User.AdminUser")->get_info();
32         $edit_info[‘start_time‘]=strtotime($edit_info[‘time1‘]);
33         $edit_info[‘end_time‘]=strtotime($edit_info[‘time2‘]);
34         foreach ($user_id as $key => $value) {
35
36             $op=M(‘user_set‘)->where(array(‘op_name‘=>$edit_info[‘op_name‘],‘uid‘=>$value))->find();
37             if($op[‘id‘]!=$id && $op )
38             {
39                E("此用户配置已存在");
40             }
41
42             if(M(‘user_set‘)->where(‘uid=%d‘,$value)->find())
43             {
44                 $edit_info[‘uid‘]=$value;
45                 $result=M(‘user_set‘)->where("id=%d",$id)->save($edit_info);
46                 $content="id:".$id."修改前的|op_name:".$res[‘op_name‘]."|op_value:".$res[‘op_value‘]."|op_des:".$res[‘op_des‘]."|start_time:".$res[‘start_time‘]."|end_time:".$res[‘end_time‘]."|is_del:".$res[‘is_del‘]."|uid:".$res[‘uid‘]."|修改后:op_name".$edit_info[‘op_name‘]."|op_value".$edit_info[‘op_value‘]."|op_des:".$edit_info[‘op_des‘]."|start_time:".$edit_info[‘start_time‘]."|end_time:".$edit_info[‘end_time‘]."|uid:".$value;
47                 $type="修改";
48                 $obj="用户配置";
49                 $log_result=DD("Logs.UserOp")->handle_logs($user_info[‘userId‘],$user_info[‘account‘] ,$content,$type,$obj);
50             }
51             else
52             {
53                $edit_info[‘uid‘]=$value;
54                $result=M(‘user_set‘)->add($edit_info);
55                $content="新增用户配置|id:".$result."|op_name:".$edit_info[‘op_name‘]."|op_value:".$edit_info[‘op_value‘]."|op_des:".$edit_info[‘op_des‘]."|start_time:".$edit_info[‘start_time‘]."|end_time:".$edit_info[‘end_time‘]."|uid:".$edit_info[‘uid‘]."|is_del:".$edit_info[‘is_del‘];
56                $type="新增";
57                $obj="用户配置";
58                $log_result=DD("Logs.UserOp")->handle_logs($user_info[‘userId‘],$user_info[‘account‘] ,$content,$type,$obj);
59             }
60         }
61
62         if($result!==false && $log_result )
63         {
64             $md->commit();
65             return true;
66         }
67         else
68         {
69             $md->rollback();
70             return false;
71         }
72    }
73    else
74    {
75        E("参数错误");
76    }
77 }
时间: 2024-11-02 19:50:30

thinkphp中try catch的运用的相关文章

thinkphp中导入和使用阿里云OSSsdk

照做绝对行,在ThinkPHP中,第三方库都放在ThinkPHP/Library/Vendor/路径下. 1.下载OSS PHP SDK:https://help.aliyun.com/document_detail/oss/sdk/php-sdk/install.html 2.在ThinkPHP/Library/Vendor/下建立一个OSS目录,将解压后的SDK拷贝到这个目录: 在ThinkPHP中的的  ThinkPHP/Library/Vendor/OSS/ 目录下adk文件与目录: s

ThinkPHP中的视图

ThinkPHP中的视图View 1.什么是视图View 所谓的视图就是用户可视化操作界面. 2.视图View组成 view类(模板引擎类似Smarty) 模板文件(html模板) 3.视图的定义 默认视图的定义规则: ./项目目录/Home或Admin模块下的View文件夹/Public控制器名称/login操作方法.html ① 在控制器中定义相关操作方法,如下图所示: ② 在./Application/Admin/View/Public文件夹下创建login.html模板文件 ③ 显示效果

PHP中try{}catch{}的具体用法详解

PHP中try{}catch{}是异常处理,将要执行的代码放入TRY块中,如果这些代码执行过程中某一条语句发生异常,则程序直接跳转到CATCH块中,由$e收集错误信息和显示.任何调用 可能抛出异常的方法的代码都应该使用try语句,Catch语句用来处理可能抛出的异常. < ?php try { $mgr = new CommandManager(); $cmd = $mgr->getCommandObject("realcommand"); $cmd->execute

ThinkPHP中的模型

ThinkPHP中的模型 1.什么是模型(Model) 模型表示企业数据和业务规则,实际项目开发中,主要实现与数据库进行操作. 2.模型的定义规则 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型类的关键词Model,再加上类文件后缀.class.php 案例:实现移动办公自动化系统的组织结构功能 ① 设计数据库db_think ② 设计数据表结构(tk_dept) id ???? 编号 ????int 自动增长 主键 name 部门名称 varchar(4

ThinkPHP中 按条件查询后列表显示

最近在项目中遇到了需要根据下拉框的条件筛选出符合条件的数据,然后进行列表显示的问题. 在ThinkPHP中进行列表显示的传统过程:通过在后台控制器中查询出数据,然后通过$this->assign()来实现控制器数据向页面的传递,在页面中通过<foreach>或<volist>标签来进行数据的解析,(注:在通过标签进行数据的解析时需要以“$”符号的形式). 在进行条件查询时,需要通过jquery中ajax的方式将条件GET到后台控制器,后台控制器中接收数据,然后根据条件进行查询

ThinkPHP中的__initialize()和类的构造函数__construct()

ThinkPHP中的__initialize()和类的构造函数__construct()网上有很多关于__initialize()的说法和用法,总感觉不对头,所以自己测试了一下.将结果和大家分享.不对请更正.首先,我要说的是1.__initialize()不是php类中的函数,php类的构造函数只有__construct().2.类的初始化:子类如果有自己的构造函数(__construct()),则调用自己的进行初始化,如果没有,则调用父类的构造函数进行自己的初始化.3.当子类和父类都有__co

thinkphp中URL传参数的几种方式

在thinkphp中,url传参合asp.net中原理类似,下面就单个参数和多个参数传递方式进行一个简单讲解 1.传单个参数 单个参数这种比较简单,例如 想像edit操作里面传递一个id值,如下写法__URL__/edit/id/1 http://localhost/index.php/user/edit/id/1 id和其值1要分别位于/后面 后台获取id通过    $id=$_GET['id']   即可获取其具体值. 2.传多个参数 传多个参数相对比较麻烦一点,可以通过两种方式 第一种:传

ThinkPHP中I(),U(),$this-&gt;post()等函数

在ThinkPHP中在控制器中接受表单的数据可以用 1.$_POST[]/$_GET[],但是这个接受的表单内容不会通过htmlspecialchars();函数进行过滤.如果想使用这个接收数据,需要手动处理表单数据 2.可以用接收表单函数 $this->_post();$this->_get();函数,这个函数默认就会使用htmlspecialchars()进行过滤,不用手动过滤. 3.在thinkphp3.1.3中有一个新的函数I();直接接收表单数据,并默认为htmlspecailcha

thinkphp中I(&quot;parm&quot;)用法的注意事项

php中用来传输的方式有两种$_GET 和 $_POST, thinkphp 提供了一种兼容两中传输方式的做法I(“param”) 但是请注意:在使用php中的函数时需要传入参数时不能用I(“parm”),必须使用采用的传输方式$_GET 或 $_POST传入,否则出错 thinkphp中I("parm")用法的注意事项,布布扣,bubuko.com