CakePHP - 自定义表单操作的最佳方法?

时间:2012-07-17 14:19:27

标签: forms cakephp cakephp-2.2

我有一个搜索表单,它使用搜索控制器/模型。

echo $this->Form->create('Search', array('action' => 'query', 'type' => 'get'));
 ...
echo $this->Form->end();

但默认情况下,表单会提交到'/searches/query'。如何将搜索页面的网址改为/search/query

如果可能,我真的不想使用.htaccess重写,因为这看起来有点混乱。希望有一种整洁的蛋糕方式来做到这一点。

我认为这可以通过bootstrap.php中的自定义Inflector规则来完成,但我不确定如何。

2 个答案:

答案 0 :(得分:2)

只需使用路由器即可。在路线文件中,添加:

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

详细了解路由器in the book

答案 1 :(得分:0)

没有办法说出来:

echo $this->Form->create('Search', array('action' => 'search/query', 'type' => 'get'));

然后为此设置路由器?

$this->Router->('search/query', array('controller' => 'searches', 'action' => 'query'));