evshop_controller.md
2.88 KB
EVShop编程规则之Controller篇
1. Controller中成功和错误的处理
不涉及对话框处理,只在Controller页面跳转的情况下,针对错误处理和成功处理规则如下:
- 错误和异常情况下,使用
$this->error(message);
- 成功的情况下,使用
$this->success(message);
而具体error,success函数调用后所显示的画面的样式,可以在conf/config.php中进行定义
//默认错误跳转对应的模板文件(View/Public/error.html)
'TMPL_ACTION_ERROR' => 'Public:error',
//默认成功跳转对应的模板文件' (View/Public/success.html)
'TMPL_ACTION_SUCCESS' => 'Public:success',
2. Controller中成功或者失败返回JSON数据格式
Controller返回JSON数据,一般用于前端JS异步调用Controller方法的场合。 返回JSON,为了后期扩展,统一使用以下函数生成json返回
-
成功的场合:
json_return_success('successMessage'); // will return { 'errCode':0, 'info':'successMessage'}
-
失败的场合:
json_return_error('errorMessage'); // will return {'errCode':1, 'info':'errorMessage'}
-
需要自定义errorCode的场合:
json_return_err_code(4001,'errorMessage'); // will return {'errCode':4001, 'info':'errorMessage'}
-
需要自定义多个数据字段的场合:
json_return_customer([ 'errCode'=>4002, 'Message'=>'Customer Message', 'OtherInfo'=>'Other Infomation' ]);
-
对于微页面(weipage),有其自定义的JSON定义,在微页面编辑中,涉及到的JSON返回一般使用:
json_return_for_weipage($err_code,$err_msg='',$err_dom='');
3. 页面中分页显示的设置
设置数据的分页需要以下步骤:
- 在Controller中导入以下命名空间
use Library\MyPage;
- 在对应的Controller方法中,调用MyPage类
php public function album_pic_list() { $where_condition = Array('aclass_id'=>$_GET['id'],'app_id'=>$this->app_id); // 查询条件 $pic_count = M('album_pic')->where($where_condition)->count(); // 获得显示的总数目 $pic_page = new MyPage($pic_count,6); // 创建MyPage类,参数1表示显示的总数,参数2表示一页中显示的数目 $pic_list = M('album_pic')->where($where_condition) ->order('create_timedesc') ->limit($pic_page->firstRow.','.$pic_page->listRows) ->select(); // 查询时注意加入limit进行限定 $this->assign('pic_list',$pic_list);// 向页面赋值列表 $pagebar = $pic_page->show(); $this->assign('show_page',$pagebar); // 向页面赋值pagebar元素 $this->display('gp02_goods_album_pic_list'); // 视图显示 }
- 在视图中,通过以下代码显示Pager导航
<div class="pagination"><?php echo $show_page; ?></div>