2

我正在取消 zend 框架。我有一个链接到控制器的视图,家庭,

所以:

application>controllers>HomeController.php

application>views>scripts>home>index.phtml

在 index.phtml 页面中,我有一个指向同一控制器中的操作的链接:

application>views>scripts>home>add.phtml

链接的代码是:

<a href="../application/controllers/home/add">add</a>

这不仅不起作用,而且我确信它不是在 zend 框架中执行此操作的最佳方法。

请注意我正在使用 wamp

http://localhost/sites/url/public/home/add

使用时:

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

我收到此错误消息:

Message: Invalid controller specified (sites)

这是我的 htaccess 中的内容

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
4

3 回答 3

3

为此使用 url 助手:

http://framework.zend.com/manual/en/zend.view.helpers.html

<a href="<?php echo $this->url(array('controller' => 'index', 
                                     'action' => 'index', 
                                     'module' => 'module1')); ?>" title="test">

更新

这是您.htaccess应该喜欢的方式:

SetEnv ENVIRONMENT development

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png|swf|txt)$
RewriteRule ^.*$ index.php [NC,L]
于 2012-09-01T22:42:49.947 回答
2

在 ZF 中使用相对和绝对链接时,它的工作方式与 ZF 外部几乎相同,只是所有请求都通过 index.php 路由,因此您实际上并没有路由到目录,您只是告诉路由器链接的位置:

<a href="/home/add">add</a>

或者

<a href="http://mysite.com/home/add">add</a>

url helper 将是执行此操作的首选方法,并且应该有效。在您的情况下,我怀疑 localhost 路径操作系统对您的网址造成了困难,我知道它总是对我的。

为每个项目设置一个虚拟主机将使这个问题消失。如果您在虚拟主机设置方面需要帮助,那么这里有一些很好的资源。

http://blog.srmklive.com/2010/12/27/how-to-create-virtual-hosts-using-zend-server-ce/

于 2012-09-02T06:51:11.083 回答
0

您不必application在链接中引用该文件夹,因为该文件夹可以位于您的htdocs/ www/public_html文件夹之外。

该链接应如下所示:http://yourdomain.com/home/addhttp://localhost/home/add,具体取决于您安装应用程序的位置。

在我看来,最好的方法是使用该$this->baseUrl()方法(仅适用于视图,而不是控制器),或者您可以在 bootstrap.php 中定义一个常量,该常量包含您的 baseUrl。

于 2012-09-01T22:37:50.327 回答