2011-06-05 45 views
1

如何提交使用窗体助手的格式,并有提交的答复有什么搜索的网址是什么?CakePHP的表单提交与结果网址

我提交此代码:

<?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 

回答

2

你将不得不做重定向来获取这个确切的URL。使用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 
    } 
} 

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

+0

我遇到麻烦时,我寻找的是有一个空间......话似乎不可思议 – cdub 2011-06-05 05:03:42

+0

什么麻烦,特别?例子? – deceze 2011-06-05 05:06:05

+0

没关系,有一些缓存问题和调试代码搞乱东西 – cdub 2011-06-05 05:10:42