私はCake2.1を使用していますが、それに伴って新しいJsonViewが付属しています。私がやりたいのは、コントローラーのメソッドにPOSTし、htmlフラグメントをレンダリングして、jsonの値として返すことができるようにすることです。
以前は、次のようなことをしていました。
public function ajaxSubmit() {
if (!$this->request->is('ajax')) {
$this->redirect('/');
} else {
$this->autoRender = $this->layout = false;
$message = 'Please enter a message';
$this->set('message');
$errorFragment = $this->render('/Elements/errors/flash_error');
$toReturn = array('errorFragment' => $errorFragment);
return json_encode($toReturn);
}
}
flash_error
これは、その特定の要素のhtmlフラグメントのみを送り返すためkey => values
、標準のjsonオブジェクトで複数を送り返すことはできません。htmlフラグメントとプレーンテキストの両方をjsonとして送信できるようにしたいと思います。
だから私の質問は本当に、Cake 2.1が提供するJsonViewを使用して、HTML要素をレンダリングし、(key => valueペア)でそれをコントローラーからjsonとして返送するように設定するにはどうすればよいですか?ルートファイルにすでに設定しており、AppController内にコンポーネントRouter::parseExtensions('json');
を含めています。RequestHandler