1

CakePHP 1.3では、routes.phpにこのルーターがあります。

Router::connect('/listing/*', array('controller' => 'items', 'action' => 'index'));

私の質問は、www.mysite.com /listing.jsonhtml-formへの送信アクションを作成するにはどうすればよいですか?

これは、app / views / items/index.cptフォルダーに現在あるフォームです。

$this->Form->create( 'Item' ); // HTML: <form action="/listing" method="post">

submit-actionを" listing.json "に変更しようとしましたが、 " / items / "が先頭に追加されているため、機能しませんでした。

$this->Form->create( 'Item', array( 'action' => 'listing.json' ) ); // HTML: <form action="/items/listing.json" method="post">

++

言い換えれば、フォームアクションを次のようにしたいと思います。何かアイデアはありますか?

<form action="listing.json" method="post">
4

1 に答える 1

1

まず、.jsonを処理するようにルーターを構成する必要があります。

Router::parseExtensions('json');

次に、このようにフォームを作成します。

$this->Form->create( 'Item', array('url' => array('controller'=>'items', 'action'=>'index', 'ext' => 'json')));

これでうまくいくと思います。

しかし...あなたがやろうとしていることに問題があります。送信URLを*.jsonとしてマークしても、jsonリクエストを投稿するという意味ではありません。この変更により、*。jsonという名前のURLにhtmlフォームを投稿するだけで済みます。

于 2012-05-15T14:50:41.053 に答える