2
我正在使用在Cakephp中呈现json格式的API。 在AppController.php
我:如何在不继续主控制器的情况下停止在beforefilter中继续?
public function beforeFilter() {
$this->RequestHandler->renderAs($this, 'json');
if($this->checkValid()) {
$this->displayError();
}
}
public function displayError() {
$this->set([
'result' => "error",
'_serialize' => 'result',
]);
$this->response->send();
$this->_stop();
}
但它并不显示任何内容。虽然如果它正常运行不停止并显示:
$this->set([
'result' => "error",
'_serialize' => 'result',
]);
显示良好。
我在某处读到你需要在退出之前呈现一个视图来显示响应,但不确定。 –
beforeFilter不会停止正在运行的控制器操作,您可以试试$ this-> autoRender = false;这应该会停止您的控制器操作自动呈现视图。 – HelloSpeakman
我明白了,谢谢@HelloSpeakman。有没有办法重定向到另一个控制器而不更改URL? – ralphjason