我在urlmanager中使用seourlmanager类 有一个使用Multicomplete Extension的ajax自动填充字段 扩展发送ajax请求,如'controller / action?term = searchterm' 问题是url manager(seourlmanager)无法处理get查询 在url manager我有这个规则:
'controller/action/<term:.*>'=>'controller/action'
如何调整网址管理器以使用Multicomplete Extension和seourlmanager?
答案 0 :(得分:0)
尝试在配置文件中添加通用规则,如下所示:
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
这与典型的controller/action
格式匹配,有或没有其他查询参数。
由于自动填充扩展程序使用?term=searchterm
,因此不需要在规则中定义?term
:
/controller/action?term=searchterm - CORRECT
/controller/action/term - INCORRECT
答案 1 :(得分: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;
}