2013-03-30 221 views
1

我有一個PHP Zend Framework的小問題。 我在文件的application.ini以下路線:Zend Framework - 重定向到路由方向

resources.router.routes.mainpage.route = "main-page.html" 
resources.router.routes.mainpage.defaults.controller = "index" 
resources.router.routes.mainpage.defaults.acion = "index" 

如果我在任何訴訟直接做:

$this->_helper->redirector('index', 'index'); 

的話,我會重定向到地址:我的項目/公/指數/指數 但我想解決是我的項目/公共/主page.html中(因爲它是確定的application.ini)

能如此人幫助我? P.S. 對不起,我的英語。

回答

1

使用gotToUrl方法對於您的情況下,這個結果:

如果是這樣,你可以簡單地添加以下重定向

$this->_redirector->gotoRoute(array(), 'mainpage'); 
+0

謝謝你!有用 : ) – klapaucius

-2

首先,你的application.ini中的語法似乎是錯誤的。見ZF-Manual: Resource Router

在你的情況下,它會是。像:

resources.router.routes.mainpage.route = "/index" 
resources.router.routes.mainpage.defaults.controller = "index" 
resources.router.routes.mainpage.defaults.acion = "MainPage" 

但是,它似乎你正試圖重定向到靜態頁面,這不是ZF的一部分。就我所知,Zend_Controller_Router只能路由到您的項目中的控制器。從Redirector helper

$this->_redirector = $this->_helper->getHelper('Redirector'); 
$this->_redirector->gotoRoute(
     array('fooRouteArgument' => fooValue), 
     'route-name' 
); 

//In view-scripts: 
<?php echo $this->baseUrl('main-page.html'); ?> 
//In controllerActions: 
$this->_helper->getHelper('Redirector') 
     ->gotoUrl('/main-page.html'); 
+0

讓我建議您閱讀手冊,因爲您的答案完全錯誤。路由的主要目標是將其用作路由名稱的路徑別名。 – Maks3w

+0

謝謝,但路線的目標對我來說很清楚。我明白user2225468的主要問題是,她/他想要建立到靜態頁面的路由而不是控制器操作。另外,他將'resources.router.routes.mainpage.route'設置爲路由應該到達的地方。但是'resources.router.routes.mainpage.route'應該有哪個路由器變爲活動的規則。 – mdthh