CakePHP表单提交结果在Url中

时间:2011-06-05 04:36:17

标签: php forms cakephp cakephp-1.2

如何使用表单助手提交表单,并且该提交的回复是否包含搜索到的内容的网址?

我提交此代码:

 <?php echo $form->create('Search', array('action' => 'results', 'type' => 'post')); ?>
    <?php

            $options = array
            (
                'size' => 45,
                'id' => 'search',
                'tabindex' => 1,
                'maxlength' => 250
            );

            echo $form->text('Search.query', $options);
        ?>

因此,当我提交带有“Hello World”字样的表单时,我希望生成的网址为:

 [domain]/searches/results/Hello+World

1 个答案:

答案 0 :(得分:2)

您必须进行重定向才能获得此确切的网址。使用GET提交表单将导致/searches/results?SearchQuery=Hello+World。根据我的口味,这将是完全足够的,但如果你想要一个漂亮的URL,请在你的控制器中执行此操作:

class SearchesController extends AppController {
    public function results($query = null) {
        if (!$query && $this->data) {
            $this->redirect(array('action' => 'searches', $this->data['Search']['query']));
        }

        // search
     }
}

请注意,这需要一次额外的往返服务器。