2012-03-31 126 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');