不是很懂你的意思,Ajax请求到后台获取数据之后通过前端模板引擎渲染到前台,怎么是“通过模板的渲染直接从控制器返回数据”?,返回数据还需要模板引擎吗?模板引擎的使用是避免拼接字符串,便于更好的处理ajax返回的数据。因为ajax请求数据在项目里经常用到,可以自己封装一下方法,比如我用的方式:
protected $msg;
//返回数据失败
protected function fail($mode=false,$type="json"){
$this->msg['status'] = 'failure';
if(true===$mode){
$this->reply($type);
}
}
//返回数据成功
protected function succeed($mode=false,$type="json"){
$this->msg['status'] = 'success';
if(true===$mode){
$this->reply($type);
}
}
//返回的数据
protected function setResult($result){
$this->msg['result'] = $result;
}
protected function reply($type="json"){
if($type == 'string'){
print_r($this->msg);
}else{
echo json_encode($this->msg);
}
exit;
}
使用方法:
1.请求成功:
$this->setResult($data);
$this->succeed(true)
2.请求失败:
$this->setResult("请求失败") //可以不用写
$this->fail(true)
js中ajax请求:
$.post('',$data).done(function(rs){
var rs = $.parseJSON(rs);
if(rs.status == 'success') {
var msg = rs.result; //获取数据
} else {
//请求失败的处理
}
});