2012-01-28 2 views
2

Je suis sûr que c'est très simple. Nous avons un appel ajax à un contrôleur. L'appel passe dans une paire de valeurs - un identifiant ET une valeur. Je dois connaître le nom de l'identifiant, ainsi que la valeur pour que je puisse le faire:Zend form _request-> getParams() est-ce que param existe?

 switch ($identifier) { 
    case 'country': 
     //set value for something 
     break; 
    case 'region': 
     //set value for something else 
     break; 
} 

Je préférerais ne pas passer une valeur supplémentaire car il n'est pas nécessaire.

J'ai essayé ceci et, en plus d'être dégoûtant code alambiqué, cela n'a pas fonctionné!

 $requestparams=$this->_request->getParams(); 
     list($controller,$action,$module,$levelpair)=$requestparams; 
     list ($level,$id)=$levelpair; 

Répondre

3

Essayez ceci:

$requestparams=$this->_request->getParams(); 
    foreach($requestparams as $key => $value) { 
    switch ($key) { 
    case 'country': 
     //set value for something 
     break; 
    case 'region': 
     //set value for something else 
     break; 
    } 
    } 
4

Il est plus sûr d'obtenir les paramètres via des méthodes de commande au lieu d'accéder aux membres directement protégés. En outre, d'après ce que je peux dire, switch n'est pas la meilleure approche.

Essayez:

$requestParams = $this->getRequest()->getParams(); 

if (isset($requestParams['country'])) { 
    //do something 
} 

if (isset($requestParams['region'])) { 
    //do something 
}