带查询的CakePHP索引

带查询的CakePHP索引,php,cakephp,Php,Cakephp,我正在使用CakePHP构建一个原型搜索应用程序,到目前为止,我有一个搜索控制器,其中包含以下代码: class SearchController extends AppController { var $name = 'Search'; var $uses = array(); function index ( $query ) { $query = $_GET['q']; $this->set('title_for_

我正在使用CakePHP构建一个原型搜索应用程序,到目前为止,我有一个搜索控制器,其中包含以下代码:

class SearchController extends AppController
{
    var $name = 'Search';

    var $uses = array();

    function index ( $query )
    {
        $query = $_GET['q'];

        $this->set('title_for_layout', $query. ' – smplr');

        // if no query then redirect to home
        if ( !$query )
        {
            $this->redirect(array('controller' => 'home', 'action' => 'index'));
        }
    }
}
因此,当用户有如下内容时,就会触发此命令:
domain.com/search?q=Hello

我的问题是如何使用传递到
index()
的查询

目前,我必须手动创建一个新变量,以使用
$\u GET
获取查询字符串,我确信这不是使用Cake实现的方法

非常感谢您的帮助。谢谢

您需要使用:

$this->params['url']['q'];
更具体地说:

function index ( $query )
    {
        $query = $this->params['url']['q'];

....

所以我根本不需要
索引()中的
$query
?因为我可以直接使用参数中的变量内容?是的,您不需要捕获$query作为函数参数。但是为什么不呢?在处理诸如创建、编辑等正常功能时,您可以这样做。谢谢,因为你没有按正常方式传递。您的url是:domain.com/search?q=asdf。要想以您想要的方式捕获它,您的url应该是:domain.com/search/index/asdf
$query=$this->params['url']['q']之间有什么区别
$query=$\u GET['q']