在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">
答案 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。