带查询的CakePHP索引
我正在使用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_
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']谢谢,伙计。玩得开心。