2011-12-09 5 views
2

私はZend Frameworkで検索アクションを持っています。特殊文字が含まれている場合、Zendのparam値を取得する方法は?

とコードです:

私はアクションにキーワードを送信するには、以下のようなURLを使用
function searchAction() 
{ 
    $keyword = $this->getRequest()->getParam('keyword'); 
    if(!empty($keyword)) 
    { 
     //@todo here 
    } 
} 

/インデックス/検索/キーワード/

グーグルWith:

  • 度:コントローラ
  • 検索:アクション
  • キーワード&グーグル:PARAMと値のペア。

ユーザーが値を持つキーワードは、 "/" 文字

/インデックス/検索/キーワード/ /
=>で検索されるまで、すべてがOKです:getParam( 'キーワード' )空である

Iは "/" の符号化され%の2F()

を使用することを試みました0

/インデックス/検索/キーワード/ %2F
=>:404エラー

は、どのように私はこの問題を解決することができますか?

+0

代わりに '/ index/search?keyword =%2F'として投稿できますか?私はこの状況にも対処する方法がわからなかったので、それに頼らざるを得なかった。 '$ this - > _ request-> getParams()'はそれをまだ配列のパラメータとして返すべきです。 – Benno

+0

@Benno:あなたはそうですが、私はそのペアと 'keyword'パラメータの値を保持する必要があります。ですから、もし私がユーザーの 'url'ヘルパーのようなときには?keyword = value =>を使います:$ this-> url(); =>このパラメータは失われます。 – vietean

答えて

1

あなたは、コントローラで変数キーワードで作業することができ、その後、あなたのbootstrap.phpの

$router = $frontController->getRouter(); 

$router->addRoute(
     'searchOncontrollername', 
     new Zend_Controller_Router_Route('/controllername/search/:keyword', array('controller' => 'controllername', 
                  'action' => 'search' 
      ))); 

にルートを追加しようとすることができます:

$keyword = $this->getRequest()->getParam("keyword"); 
+0

本当に、私は404エラーが見つかりました、私はそれがApacheからだと思いますか? – vietean

2

簡単な使用方法を試してください。

$value = $this->_getParam('keyword'); 
関連する問題