2011-08-24 6 views

Répondre

6

On dirait que vous cherchez Zend_Controller_Router.

Zend_Controller_Router_Route est la route d'infrastructure standard. Il combine la facilité d'utilisation avec la définition d'itinéraire flexible. Chaque route consiste principalement en un mappage d'URL (de parties statiques et dynamiques (variables)) et peut être initialisé avec des valeurs par défaut ainsi qu'avec des exigences variables.

$route = new Zend_Controller_Router_Route(
    ':controller/:action/:id', 
    array(
     'controller' => 'index', 
     'action'  => 'index', 
     'id'   => 0 
    ), 
    array('id' => '\d+') // Makes sure :id is an int 
); 

$router = Zend_Controller_Front::getInstance()->getRouter(); 
$router->addRoute('myRouteName', $route); 
2

son URLs valide zf

url est se composent généralement de

/controller/action/id/value/id2/value2/....../idN/valueN

et peut alors lire tous ces params ensemble:

$ this -> _ getAllParams()

$ this -> _ request-> getParams();

ou par son ID en utilisant votre propre

$ this -> _ request-> getParam ("id");

$ this -> _ getParam ("id")

+0

Ce n'est pas entièrement vrai. Ce n'est pas une URL STANDART ZF, mais elle est certainement valide! –

0

Tout d'abord, comme @adlawson, Etat dont vous avez besoin pour créer un itinéraire qui acceptent le paramètre. En faisant cela, vous donnez également un nom à ce paramètre. Le @adlawson de code proposé est assez bon:

$route = new Zend_Controller_Router_Route(
':controller/:action/:id', 
array(
    'controller' => 'index', 
    'action'  => 'index', 
    'id'   => 0 
), 
array('id' => '\d+') // Makes sure :id is an int 
); 

$router = Zend_Controller_Front::getInstance()->getRouter(); 
$router->addRoute('myRouteName', $route); 

Ensuite, la façon la plus simple, dans le contrôleur, pour récupérer la valeur de la id de votre URL http://example.com/Controller/action/42 est la suivante:

public function indexAction() { 
    ... 
    $id = $this->params()->fromRoute('id'); 
    ... 
} 
Questions connexes