1

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

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

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

4

2 回答 2

0

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

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

这将匹配controller/action带有或不带有附加查询参数的典型格式。

由于自动完成扩展使用?term=searchterm,?term不需要在规则中定义:

/controller/action?term=searchterm - CORRECT

/controller/action/term - INCORRECT
于 2012-04-22T11:30:19.723 回答
0

我已更改 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;
}
于 2012-04-23T06:51:11.237 回答