ThinkPHP的rest与普通controller可以使用一个类共用Controller,只要从RestController继承。这是与yii2不同的地方。
<?php
namespace Home\Controller;
use Think\Controller\RestController;
class HomeController extends RestController {
protected $allowMethod = array (
'get',
'post',
'put'
);
// Rest允许的请求类型列表
protected $allowType = array (
'xml',
'json'
);
Public function read_json() {
// 输出id为1的Info的json数据
$this->response(['a'=>'b'],'json');
}
}访问:
/Home/read/.json
获取参数的方式:
public function query($SellId){
$Form=M('web_hm_sells');
$data=$Form->find($SellId);
$this->response($data,'json');
}
/**
* @param int $p 第几页
* @param int $rows 每页大小
* page
* /Hm/Sells/getlist/p/1/rows/5
*/
public function getlist($p,$rows){
$Data=M('web_hm_sells');
$map=[];
$count = $Data->where($map)->count();// 查询满足要求的总记录数 $map表示查询条件
$Page = new \Think\Page($count, $rows);// 实例化分页类 传入总记录数
//var_dump($Page);die();
$list = $Data->where($map)->order('SellId')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->response([
'd'=>[
'Table'=>[
'rows'=>$list
],
'Pagecount'=>($Page->totalRows-1)/$rows+1,
'Total'=>$Page->totalRows,
'Page'=>$p
]],'json');
}请求
$.get('/Home/read/id/2');1ThinkPHP要求php版本为5.3+,但如果要支持shorthand array写法,需要5.4+。
shorthand array:
$a=[‘key’=>’value’];