简单分装一个json返回数据的方法。

浏览:3909 发布日期:2016/06/20 分类:基础算法
在thinkPHP中返回json数据可以用ajaxReturn(), 但我们返回的数据是数组的时候,每次需要组装成数组,这样有点儿麻烦。
所以,尝试对ajaxReturn()方法进行封装。
1.建立一个基础控制器,其他控制器继承自这个基础控制器.
在这个控制器中定义一个方法returnErr()class BaseController extends Controller
{

    /**
     * 返回错误
     * @param $errcode
     * @param $cerrmsg
     * @param $url
     */
    protected function returnErr($errcode,$errmsg,$url){

        $errcode&&$mes ['errcode'] = $errcode;
        $errmsg&&$mes ['errmsg'] = $errmsg;
        $url&&$mes ['$url'] = $errmsg;

        $this->ajaxReturn($mes);

    }


}
$errcode&&$mes ['errcode'] = $errcode;
这段代码的意思是如果$errcode为真,则执行后面的赋值语句.
2 .在其他的控制器,继承自baseController.class.php .
这样就可以调用这个returnErr()方法了.class LoginController extends BaseController
{
      public function login()
    {
        //接收数据
        $cid = I('CorporateId');
        $userName = I('LoginName');
        $password = I('Password');
        $code = I('verify');

        //检验验证码
        if(!check_code($code))
        {
            $this->returnErr(1,'captcha is wrong');
        }
   }
}
$this->returnErr(1,'captcha is wrong');
调用这个返回的信息没有第三个参数.
{"errcode":1,"errmsg":"captcha is wrong"}
如果想要实现即使是调用的时候只有两个参数.$this->returnErr(1,'captcha is wrong');但是返回的时候没有传入的参数为'',效果类似{"errcode":1,"errmsg":"captcha is wrong", 'url':"}那么封装的时候可以用三元运算符:class BaseController extends Controller
{
    protected function returnMsg($errcode, $errmsg, $url)
    {
        $data['code'] = $errcode ? $errcode : " ;
        $data['msg'] = $errmsg ? $errmsg : '';
        $data['url'] = $url ? $url : '';
        $this->ajaxReturn($data);
    }
}
评论( 相关
后面还有条评论,点击查看>>