2010-01-11 46 views
0

我在使用其他变量链接某些路线时遇到问题。我正在使用通配符子域。 像这样:http://eric.mysite.dev/mypage1 mypage1将成为一个GET变量。所以,我要的是http://mysite.dev/donate/now/index/id/eric/pagename/mypage1带附加变量的Zend_Controller_Router_Route_Hostname

我有没有页面名这样的工作的罚款:

$router=$fc->getRouter(); 
// Host routes 
$accountHostRoute = new Zend_Controller_Router_Route_Hostname(':urlname.mysite.dev', array('module' => 'donate', 'controller' => 'now', 'action' => 'index'), array('urlname'=>'(?!www$).*') 
     ); 

     // Account routes 
     $router->addRoute('donateWithHostNameLocal', $accountHostRoute->chain(
      new Zend_Controller_Router_Route_Hostname(
       ':urlname.mysite.dev', 
       array(
        'module' => 'donate', 
        'controller' => 'now', 
        'action' => 'index' 
       ) 
      ) 
     )); 

但我也想在页面的名字,所以我想这一点,但它不工作:

// Account dynamic pages routes 
    $router->addRoute('donateWithHostNamePageNameLocal', $accountHostRoute->chain(
     new Zend_Controller_Router_Route_Hostname(
      ':urlname.mysite.dev/:pagename', 
      array(
       'module' => 'donate', 
       'controller' => 'now', 
       'action' => 'index' 
      ) 
     ) 
    )); 

我得到的一个应用程序错误:消息:资源 '默认:mypage1' 未找到

堆栈跟踪: 0 /应用程序/ MAMP /斌/ php5/lib/php/ZendFramework-1.9.6/library/Zend/Acl.php(751):Zend_Acl-> get('default:mypage1') 1/Applications/MAMP/htdocs/mysite/application/modules/default /plugins/AccessCheck.php(15):Zend_Acl-> isAllowed('guest','default:mypage1','index') 2 /Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/ (309):Plugin_AccessCheck-> preDispatch(Object(Zend_Controller_Request_Http)) 3/Applications/MAMP/bin/php5/lib Controller/Front.php(933):Zend_Controller_Plugin_Broker-> preDispatch(Object(Zend_Controller_Request_Http)) 4 /Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Application/Bootstrap/Bootstrap。 php(77):Zend_Controller_Front-> dispatch() 5 /Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Application.php(358):Zend _Application_Bootstrap_Bootstrap->运行() 6 /Applications/MAMP/htdocs/mysite/public/index.php(34):Zend_Application->运行() 7 {主}

请求参数: 阵列( “控制器'=> 'mypage1', '行动'=> '指数', '模块'=> '默认', )

回答

1

我怀疑你的ACL没有这个资源的定义和使用自定义生成资源的逻辑。

+0

如果你写了抛出的异常会有所帮助(Zend_Acl_Exception,Zend_Application_Exception,...) – 2010-01-11 16:42:36

+0

字符限制在这里,所以我添加了堆栈跟踪到我的问题。 我的访客权限是在我的ACL模型中捐赠/ now/index 谢谢 – EricP 2010-01-11 16:54:04

+1

然后很明显你的路线不匹配。您可以尝试将/ *添加到最后以匹配woth参数。 – 2010-01-12 13:55:05