私は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