2016-06-21 22 views
0

Ich habe ein Problem mit einem Routing im Zend-Framework.Zend Framework Routing Fehler

'name' => array(
    'type' => 'Zend\Mvc\Router\Http\Segment', 
    'options' => array(
     'route' => '/site/:id/orders[/:page]', 
     'constraints' => array(
      'id' => '[0-9]*', 
      'page' => '[0-9]*' 
     ), 
     'defaults' => array(
      'controller' => 'Application\Controller\Site', 
      'action'  => 'action' 
     ), 
    ), 
), 

Und in einer Steuerung.

$id = (int) $this->params()->fromRoute('id'); 

Und in einigen Fällen ein Browser, um diese Fehler zurückgibt (!) - "Fehlende Parameter 'id'," aber ich weiß nicht, warum.

Kann mir jemand zu diesem Thema helfen?

+0

* "Und in einigen (!) Fällen ..." * Können Sie eine geben Beispiel für einen dieser Fälle? Sonst wird es unmöglich sein, dir zu helfen ... – Wilt

+0

Ich weiß, es klingt merkwürdig, aber es ist hauptsächlich, wenn die ID nur aus einer Nummer besteht. Aber in einigen Fällen, z. ID 33, es funktioniert nicht so gut. Ich weiß es wirklich nicht. – KRiSTiN

+0

Können Sie diese URLs als Beispiele zu der Frage hinzufügen? – Wilt

Antwort

0

gut basierend auf Ihrer Route Konfigurations-ID muss in Ihren Routen vorhanden sein, so dass der von Ihnen angeforderte Link keine ID hatte. und deine Constraints sollten auch zu 'id' = '' [0-9] + 'wechseln, damit die ID existieren muss.

und Sie erhalten auch die ID in der Steuerung von nur

eingeben
$id=$this->params("id"); 

, die auch die ID bekommen