Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii-urlManager和jquery-ajax-GET请求_Php_Ajax_Yii - Fatal编程技术网

Php Yii-urlManager和jquery-ajax-GET请求

Php Yii-urlManager和jquery-ajax-GET请求,php,ajax,yii,Php,Ajax,Yii,我正在使用urlmanager中的类。 有一个使用ajax自动完成的字段。 扩展发送ajax请求,如“controller/action?term=searchterm”。 问题是url管理器(seourlmanager)无法处理get查询。 在url管理器中,我有以下规则: 'controller/action/<term:.*>'=>'controller/action' 'controller/action/'=>'controller/action' 如何调整ur

我正在使用urlmanager中的类。
有一个使用ajax自动完成的字段。
扩展发送ajax请求,如“controller/action?term=searchterm”。
问题是url管理器(seourlmanager)无法处理get查询。
在url管理器中,我有以下规则:

'controller/action/<term:.*>'=>'controller/action' 
'controller/action/'=>'controller/action'

如何调整url管理器以同时使用Multicomplete Extension和seourlmanager?

尝试在配置文件中添加一个通用规则,如下所示:

'<controller:\w+>/<action:\w+>' => '<controller>/<action>',

我已将seourlmanager类更改为在末尾添加查询字符串:

protected $_query;  
public function init() {  
  ..  
  $this -> _query = (!empty($urlParts['query'])) ? $urlParts['query'] : '';  
  ..  
}  
protected function _connectUrlParts() {
  $scheme = $this -> _scheme . '://';

  $port = (!empty($this -> _port)) ? ':' . $this -> _port : '';
  if($this->_query=='')
    return $scheme . $this -> _host . $port . $this -> _path;
  else
    return $scheme . $this -> _host . $port . $this -> _path.'?'.$this->_query;
}

您是否设置了.html后缀(
'urlSuffix'=>'.html'
)?如果是这样,url也应该使用后缀。尝试直接在浏览器中输入url,以查看哪种组合为您提供了正确的响应。
protected $_query;  
public function init() {  
  ..  
  $this -> _query = (!empty($urlParts['query'])) ? $urlParts['query'] : '';  
  ..  
}  
protected function _connectUrlParts() {
  $scheme = $this -> _scheme . '://';

  $port = (!empty($this -> _port)) ? ':' . $this -> _port : '';
  if($this->_query=='')
    return $scheme . $this -> _host . $port . $this -> _path;
  else
    return $scheme . $this -> _host . $port . $this -> _path.'?'.$this->_query;
}