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