1

urlmanager でseourlmanagerクラスを使用しています。Multicomplete Extension
を使用する ajax オートコンプリートのフィールドがあります。 拡張機能は「controller/action?term=searchterm」のような ajax リクエストを送信します。 問題は、URL マネージャー (seourlmanager) が get クエリを処理できないことです。 URLマネージャーには次のルールがあります:


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

Multicomplete Extension と seourlmanager の両方で動作するように URL マネージャーを調整するにはどうすればよいですか?

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 に答える