2

私は Cakephp2.2 バージョンを使用しており、URL http://book.cakephp.org/2.0/en/development/rest.htmlで入手可能なドキュメントに従いました。

編集メソッドでは、edit.ctp配置する編集フォームを含むものは何になりますかviews/receip/xml/.

編集フォームをViews/Receip/xml/フォルダーに入れると、xml のようなフォームが生成されます。

誰もが index メソッドのコードを書きますが、edit メソッドのコードは誰も書きません。誰かが編集メソッドの書き方を教えてもらえますか?送信するrecipes/edit/1.xmlと、データで満たされたhtmlフォームを取得できますか?

4

1 に答える 1

1

XML ビューは、この例のインデックス ビューに非常によく似ているはずです。

例と同じ編集機能を使用していると仮定しています。

public function edit($id) {
    $this->Recipe->id = $id;
    if ($this->Recipe->save($this->request->data)) {
        $message = 'Saved';
    } else {
        $message = 'Error';
    }
    $this->set(array(
        'message' => $message,
        '_serialize' => array('message')
    ));
}

本に述べられているように:

CakePHP に組み込まれている JSON および XML ビューを使用して、JSON ビューを簡単に作成することもできます。組み込みの XmlView を使用することで、_serialize ビュー変数を定義できます。この特別なビュー変数は、XmlView が XML にシリアル化するビュー変数を定義するために使用されます。

ただし、組み込みのビューを使用していない場合は、ビュー内の XML を手動で指示することができます ( XML が自動的に生成されないよう_serializeに、関数からビュー var を削除してください)。edit

ビューは次のようになります。

$xml = Xml::fromArray(array('message' => $message));
echo $xml->asXML();

これにより、成功メッセージをノードとして含む非常に基本的な XML ドキュメントが出力されます。気軽に情報を追加できます。たとえば、更新が失敗した場合は、XML 応答に検証エラーを含めて、何が検証されなかったのかをユーザーに伝える必要があります。

于 2012-12-12T15:53:32.903 に答える