您的位置:首页 > 编程语言 > PHP开发

一个简单的 TP 3.2 中 天气查询的接口 (restful)

2015-05-15 08:59 459 查看
首先定义路由规则:参考:TP3.2开发手册 路由=》路由定义用到动态查询 getFieldBy方法 //针对某个字段查询并返回某个字段的值效果查看:实现代码:
1、下面先开启路由
'URL_ROUTER_ON'=>true,
然后就是配置路由规则了,在模块的配置文件中使用URL_ROUTE_RULES参数进行配置,配置格式是一个数组,每个元素都代表一个路由规则,例如:
'URL_ROUTE_RULES'=>array(
'news/:year/:month/:day'=> array('News/archive','status=1'),
'news/:id'=>'News/read',
'news/read/:id'=>'/news/:1',
),
系统会按定义的顺序依次匹配路由规则,一旦匹配到的话,就会定位到路由定义中的控制器和操作方法去执行(可以传入其他的参数),并且后面的规则不会继续匹配。
2、其次定义控制器,继承RESTFUL控制器
<span style="font-size:18px;"><?php
namespace Home\Controller;
use Think\Controller\RestController;
Class InfoController extends RestController {
<?php
/*
*天气查询
*日期:2015-5-15
*
*操作人:赵莹
*
*参考:TP3.2开发手册
*/
namespace Home\Controller;
use Think\Controller\RestController;
Class InfoController extends RestController {
  Public function Index(){
    $name=$_GET['id'];//获取地址栏输入的地区信息 需要和 路由中 <span style="font-size:18px;"><code><span class="str">'news/:id'</span></code></span> 中的: 后面参数保持一致
    if(!preg_match("/^[a-zA-Z\s]+$/",$name)){//判断输入的地区名字是否是拼音字母,如果不是输出错误码
         echo  100201132;
          die;
        }
        if(empty(__EXT__)||__EXT__=='html'){
//__EXT__ <code><span class="pln">  </span><span class="pun">类库文件后缀(.</span><span class="kwd">class</span><span class="pun">.</span><span class="pln">php</span><span class="pun">) 判断地址栏文件的后缀名
//如果后缀名为html 就 给$type 赋值为 html 否则 就把获取的地址栏后缀名赋值给$type
</span></code>            $type="html";
        }else{
            $type=__EXT__;
        }
//判断传值的方式
        switch ($this->_method){
            case 'get': // get请求处理代码
                if ($type == 'html'){
                    $data=$this->city($name);
// 调用 restful中reponse方法 处理
                  $this->response($data,'html');
                }elseif($type == 'xml'){
                    $data=$this->city($name);
// 调用 restful中reponse方法 处理
$this->response($data,'xml');
                }elseif($type == 'json'){
                    $data=$this->city($name);
// 调用 restful中reponse方法 处理
                  $this->response($data,'json');
                }
                break;
            case 'put': // put请求处理代码
                break;
            case 'post': // post请求处理代码
                break;
        }
    }
//查询数据库中数据信息
    public function city($dizhi){
       $sheng=M("sheng");// 省
        $city=M("city");//市
        $xian=M("xian");//县
        if($dizhi=='china'){//如果地址栏输入的是国家china查询所有省的信息
            $res=$sheng->select();
            return $res;
        }else{
            $sid=$sheng->getFieldByPyname($dizhi,'id');//针对某个字段查询并返回某个字段的值
            if($sid==""){
                $cid=$city->getFieldByPyname($dizhi,'id');
                if($cid==""){
                    $xid=$xian->getFieldByPyname($dizhi,'id');
                        if($xid==""){
                            echo "没有该地天气数据";
                        }else{
                            $condition['id'] = $xid;
                            $res=$xian->where($condition)->select();
                            return $res;
                        }
                    }else{
                         $condition['p_id'] = $cid;
                         $res=$xian->where($condition)->select();
                        return $res;
                    }
                }else{
                    $condition['p_id'] = $sid;
                    $res=$city->where($condition)->select();
                    return $res;
            }
        }
     }
}
</span>
结束了!

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: