我正在使用Phalcon 1.3.3和PHP 5.4。 在我的控制器中我有类似的东西:
public function indexAction() {
$this->response->setContentType('application/json');
$data = json_encode(['some data']);
$this->response->setContent($data);
return $this->response->send();
}
如果我放了一个" echo"在这个动作中,我无法在任何地方看到它,我认为这是因为Phalcon使用缓冲输出(It is possible to get Phalcon\Mvc\View rendered output in variable?)
但那不是我的问题,我的问题是,如果我有关于缺失变量的警告/通知,或未声明的常量或使用弃用的方法,我无法在渲染页面上看到这些。 我可以在日志中看到它们而不是页面本身,这在开发时有点烦人。在生产中显然不是问题。
PS:我有" display_errors"和" display_startup_errors"设置为1,如果我在渲染页面之前放置了存在,我会看到所有警告
答案 0 :(得分:1)
我用它来返回json:
$expireDate = new \DateTime();
$this->response->setHeader('Access-Control-Allow-Origin', '*');
$this->response->setContentType('application/json', 'UTF-8');
$this->response->setExpires($expireDate);
$this->response->setHeader('Cache-Control', 'private, max-age=0, must-revalidate');
$this->response->sendHeaders();
echo json_encode(array('response' => $response, 'error' => $this->api_error));
并在index.php中
/**
* Handle the request
*/
$application = new \Phalcon\Mvc\Application($di);
//disable view service in general
$application->useImplicitView(false);
如果要仅为某些地方禁用视图渲染,可以在控制器中使用:
$this->view->disable();
echo $data;