2012-03-31 83 views
2

我想開發一個使用Zend框架的網站,但我有一個問題: 我有默認的控制器,它向我顯示一個帶有鏈接的頁面。該鏈接使用另一個控制器並將我重定向到該控制器的起始頁面(我已在自定義控制器中實現了startAction(),並在modules/default/view/scripts/disc目錄中實現了start.phtml頁面)。包含一個從數據庫填充的表格,以及三個鏈接:添加,編輯和刪除。對於添加鏈接我在start.phtml下面的代碼中使用:Zend框架重定向器無法正常工作

<p><a href="<?php echo $this->url (array ('controller' => 'disc','action' => 'add'));?>">Add</a></p> 

而對於其他兩個鏈接類似的東西,除了動作名稱。第一次當我使用其中一個鏈接時,一切正常,但是當它將我返回到起始頁面時,所有鏈接都不再工作。他們只是讓我在開始頁面。在我的addAction()我做我所需要的東西,並在最後我用下面的代碼返回到開始頁:

$this->_helper->redirector ('start'); 

當起始頁被再次加載「添加」鏈接指向開始頁面,而不再是添加頁面。其他兩個鏈接也會發生同樣的情況。

任何人都可以幫助我嗎?

回答

0

我認爲start必須是自己的路線。其結果是,你需要指定默認路由使用url視圖助手時:

在start.phtml,試試這個:

<p><a href="<?php echo $this->url(
     array ('controller' => 'disc','action' => 'add'), 'default'); 
     ?>">Add</a></p> 
+0

謝謝您的回答。現在我的兩個鏈接工作正常,除了第一個,我修改所有他們以同樣的方式。這很奇怪。你的回答非常有幫助。 – adriana 2012-03-31 16:20:09

+0

我很高興你的問題解決了。請考慮將此答案標記爲已接受,以便任何有同樣問題的人都能立即找到答案。 – 2012-04-01 06:40:14

+0

我如何將您的答案標記爲已接受? – adriana 2012-04-07 17:58:21

2

您嘗試使用動作助手的手短版Redirector()

$this->_helper->redirector ('start'); 

爲了避免與實用方法版本混亂(因爲我不知道確切的默認值是什麼),我總是用適當的形式。

//the redirector helper has to many options to comfortably short hand. 
//gotoSimple(), gotoUrl() and gotoRoute() are all easy to use. 
$this->_helper->getHelper('Redirector')->gotoSimple('action' => 'start', 'controller' => 'index') 

使用工具方法_redirect(),嘗試這樣的事情(這acepts一個網址):

$this->_redirect('/index/start');