2016-06-21 137 views
0

我在Zend框架中有一個路由問題。Zend框架路由錯誤

'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' 
     ), 
    ), 
), 

而在一個控制器。

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

而且在某些情況下,瀏覽器返回該錯誤(!) - 「缺少參數‘身份證’」,但我不知道爲什麼。

有人可以幫我解決這個問題嗎?

+0

*「和一些(!)的情況下......」 *你能給出一個這些案例之一的例子?否則它將不可能幫助你... – Wilt

+0

我知道這聽起來很奇怪,但主要是如果ID只包含一個數字。但在某些情況下,例如。 ID 33,它不起作用。我真的不知道。 – KRiSTiN

+0

你可以添加這些網址作爲問題的例子嗎? – Wilt

回答

0

很好基於您的路線配置id必須存在於您的路線中,所以您請求的鏈接沒有id。你的約束也應該改變爲'id'=>'[0-9] +',所以這個id必須存在。

,你也通過只輸入

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

將獲得ID獲取控制器的ID也