コントローラで使用しているAJAX関数ごとにビューを作成しないようにしています。(結果のデータを操作することはなく、ほとんどの場合、ブール値にすぎないため)
コントローラでRequestHandlerコンポーネントを使用しています。
var $components = array('RequestHandler');
そして私はこれを追加しましたroutes.php
Router::parseExtensions('json');
この関数を機能させようとしていますが、次のnull
値が得られます。
public function test(){
$this->layout = 'ajax';
$result = '1';
$this->set('_serialize', $result);
}
json
関数のバージョンにアクセスするには、このURLを使用し.json
て、ビューの読み込みを回避します。
http://localhost/cakephp/demoController/test.json
私はCakePHPドキュメントの手順に従っています:http: //book.cakephp.org/2.0/en/views/json-and-xml-views.html#json-and-xml-views
私は何が間違っているのですか?期待どおりの結果が得られず、代わりにnull
?
また、次のように配列をシリアル化しようとすると、次のようになります。
$result = array('demo' => '1');
$this->set('_serialize', $result);
私はこの通知を受け取っています:
注意(8):未定義のインデックス:1 [ CORE \ Cake \ View \ JsonView.php、89行目]コードコンテキスト
$data = array();
foreach ($serialize as $key) {
$data[$key] = $this->viewVars[$key];
$ view = null $ layout = null $ serialize = array('demo' => '1')$ data = array()$ key = '1' JsonView :: render()-CORE \ Cake \ View \ JsonView.php、89行目Controller :: render()-CORE \ Cake \ Controller \ Controller.php、957行目ディスパッチャー:: _invoke()-CORE \ Cake \ Routing \ Dispatcher.php、行193 Dispatcher :: dispatch()-CORE \ Cake \ Routing \ Dispatcher.php、行161 require-APP \ webroot \ index.php、行92 [main] --ROOT \ index.php、42行目{"1":null}