2012-05-01 12 views
0

我在ZF 1中有兩個模塊一個是模塊另一個是初始應用程序本身我的問題是我需要在動作編輯後編輯一個Id動態編號與記錄交互。ZF 1無法鏈接到Route_Module獲取Id字段

代碼波紋管不工作我不明白問題在哪裏......任何想法或消除? 不工作= ID部無法識別

protected function _initRoutes() 
    { 
     $ctrl = Zend_Controller_Front::getInstance(); 

     $router = $ctrl->getRouter(); 

     $primary = new Zend_Controller_Router_Route_Module(
       array() 
       ,$ctrl->getDispatcher() 
       ,$ctrl->getRequest() 
       ); 

     $secondary = new Zend_Controller_Router_Route(
       ':id', array('id' => "\d+") 
       ); 

     $primary->chain($secondary); 

     $router->addRoute("default", $primary); 
    } 

回答

0

這個問題可能是,該模塊路線包括在端部的標準通配符,它​​匹配的鍵/值對(:module/:controller/:action/*),所以該路由相匹配的整個網址,並且由於第二條路線沒有任何匹配,整體匹配失敗。

通過在這裏使用路由鏈接,你確實沒有任何收穫。你最好使用Zend_Controller_Router_Route:

$route = new Zend_Controller_Router_Route(
    ':module/:controller/:action/:id', 
    array(
     'module' => 'default', 
     'controller' => 'index', 
     'action' => 'index' 
    ), 
    array(
     'id' => "\d+" 
    ) 
); 
$router->addRoute('default', $route); 
+0

你好,我已經嘗試了這一點,應用程序失敗停止匹配任何路線。 「Zend_Controller_Router_Exception:沒有路由匹配的請求」出現這種情況時,我嘗試你sugested什麼,如果我嘗試 $路徑=新Zend_Controller_Router_Route中( 「:模塊/:控制器/:動作/:身份證」, 陣列( 'module'=>'default' ,'controller'=>'index' ,'action'=>'index' ,'id'=>「\ d +」) ); 它需要指定一個模塊。 –

+0

是的,你需要在URL中包含一個模塊 - 你不希望它在那裏嗎? –

+0

我的默認模塊位於應用程序目錄中,我現在添加了其他模塊。 –