tp5接口写法实例


// 控制器
```
 /**
     * 添加收货地址
     */
    public function addAddress(){
        $post = $this->request->post();
        //验证  唯一规则: 表名,字段名,排除主键值,主键名
        $validate = new \think\Validate([
            ['uid', 'require', '用户id不能为空'],
            ['name', 'require|max:20', '收件人不能为空'],
            ['mobile', 'require|length:11', '手机号码不能为空'],
            ['province_id', 'require', '省份不能为空'],
            ['city_id', 'require', '城市不能为空'],
            ['district_id', 'require', '县区不能为空'],
            ['detail', 'require|max:100', '地址详情不能为空'],
        ],[
            'mobile.length' => '手机号码格式不正确',
            'name.max' => '收件人不能超过20个字符',
            'detail.max' => '地址详情不能超过100个字符',
        ]);

        //验证部分数据合法性
        if (!$validate->check($post)) {
            \Org\Response::show(400,'提交失败:' . $validate->getError());
        }

        $user_id = $post['uid'];
        $name = $post['name'];
        $mobile = $post['mobile'];
        $province_id = $post['province_id'];
        $city_id = $post['city_id'];
        $district_id = $post['district_id'];
        $detail = $post['detail'];

       $is_address = model('address')->addAddress($user_id,$name,$mobile,$province_id,$city_id,$district_id,$detail);
        if($is_address){
            \Org\Response::show(200,'access!');
        }else{
            \Org\Response::show(400,'添加失败!');
        }
    }
```
// model

```
where($map)->find();
    }

    /**
     * @param $user_id      用户id
     * @param $name         收件人
     * @param $mobile       收件人手机号
     * @param $province_id  省行政id
     * @param $city_id      城市行政id
     * @param $district_id  县区行政id
     * @param $detail       详细地址
     */
    public function addAddress($user_id,$name,$mobile,$province_id,$city_id,$district_id,$detail){
        $is_province = $this->adcodeGetOne($province_id);
        $is_city = $this->adcodeGetOne($city_id);
        $is_district= $this->adcodeGetOne($district_id);

        if(empty($is_province))  \Org\Response::show(400,'无效省份!');
        if(empty($is_city))  \Org\Response::show(400,'无效城市!');
        if(empty($is_district))  \Org\Response::show(400,'无效县区!');

        $time = time();
        $data['province_id'] =$province_id;
        $data['province'] = $is_province['name'];

        $data['city_id'] =$city_id;
        $data['city'] = $is_city['name'];

        $data['district_id'] =$district_id;
        $data['district'] = $is_district['name'];

        $data['detail'] =$detail;
        $data['mobile'] =$mobile;
        $data['name'] =$name;
        $data['user_id'] =$user_id;
        $data['is_delete'] = 0;
        if($this->where($data)->field('id')->find()) return true;

        $data['addtime'] =$time;
        $data['update_time'] =$time;
       if($this->insert($data)){
           return true;
       }else{
           return false;
       }

    }

}
```


// Response
```
 $code,

			'message' => $message,

			'data' => $data,

		);



		if($type == 'json') {

			self::json($code, $message, $data);

			exit;

		} elseif($type == 'array') {

			var_dump($result);

		} elseif($type == 'xml') {

			self::xmlEncode($code, $message, $data);

			exit;

		} else {

			// TODO

		}

	}

	/**

	* 按json方式输出通信数据

	* @param integer $code 状态码

	* @param string $message 提示信息

	* @param array $data 数据

	* return string

	*/

	public static function json($code, $message = '', $data = array()) {

		

		if(!is_numeric($code)) {

			return '';

		}



		$result = array(

			'code' => $code,

			'message' => urlencode($message),

			'data' => $data

		);



		echo urldecode(json_encode($result,JSON_UNESCAPED_UNICODE));

		exit;

	}



	/**

	* 按xml方式输出通信数据

	* @param integer $code 状态码

	* @param string $message 提示信息

	* @param array $data 数据

	* return string

	*/

	public static function xmlEncode($code, $message, $data = array()) {

		if(!is_numeric($code)) {

			return '';

		}



		$result = array(

			'code' => $code,

			'message' => $message,

			'data' => $data,

		);



		header("Content-Type:text/xml");

		$xml = "\n";

		$xml .= "\n";



		$xml .= self::xmlToEncode($result);



		$xml .= "";

		echo $xml;

	}



	public static function xmlToEncode($data) {



		$xml = $attr = "";

		foreach($data as $key => $value) {

			if(is_numeric($key)) {

				$attr = " id='{$key}'";

				$key = "item";

			}

			$xml .= "<{$key}{$attr}>";

			$xml .= is_array($value) ? self::xmlToEncode($value) : $value;

			$xml .= "\n";

		}

		return $xml;

	}



}
```

 

你可能感兴趣的:(thinkphp,php)