简单的CakePHP路由器到JSON

时间:2012-05-15 14:04:54

标签: cakephp-1.3

在CakePHP 1.3中,我在 routes.php

中有此路由器
Router::connect('/listing/*', array('controller' => 'items', 'action' => 'index'));

我的问题是,如何为 www.mysite.com/listing.json 创建一个html-form提交动作?

这是我目前在 app / views / items / index.cpt 文件夹中的表单。

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

我尝试将提交操作更改为“ 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">

1 个答案:

答案 0 :(得分:1)

首先,您需要配置路由器以处理.json。

Router::parseExtensions('json');

然后像这样进行表单创建。

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

我相信这会奏效。

但是......你想要做的事情有问题。即使您将提交URL标记为* .json,也不意味着您将发布json请求。通过此更改,您唯一要做的就是将html表单发布到名为* .json的URL。