2

我正在解开zend框架。我有一个链接到一个控制器,家中的观点,链接到另一个动作

这样:在index.phtml页我在同一个控制器链接到一个动作

application>controllers>HomeController.php 

application>views>scripts>home>index.phtml 

application>views>scripts>home>add.phtml 

的该链接的代码是:

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

这不仅不工作,但我相信在禅它不是最好的方式做到这一点d框架。

使用时请注意我使用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] 
+0

可不可以给)你的主页的URL(即,什么是在浏览器的地址栏中)和'$这个 - 定的url> URL('(即,在这个什么是A HREF =” “)? – raina77ow

+0

我的意思是你可能必须在你的'config.ini'文件中加入这一行 - 'resources.frontController.baseUrl =“/ sites/url/public”';我仍然想知道这是否是正确的道路。 – raina77ow

+0

我还没有建立一个.htacces文件,我通过点击我的文件夹,点击公共,然后点击索引文件来访问我的网站 – RSM

回答

3

使用这个网址助手:

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"> 

UPDATE

这是怎么了你.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] 
+0

请注意,我正在使用wamp – RSM

+0

查看问题更新 – RSM

+0

在.htaccess中的哪个目录是index.php? –

0

您不必参考链接中的application文件夹,因为该文件夹可能位于您的htdocs/www/public_html文件夹之外。

链接应该看起来像:http://yourdomain.com/home/addhttp://localhost/home/add,具体取决于您安装应用程序的位置。

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

+0

你做错了;)这是一个url helper的工作。当需要js或css文件时,通常使用Baseurl。 –

+0

没关系。有用。 –

+0

请注意,我正在使用wamp – RSM

2

使用relativ时e和绝对链接在ZF中,它的功能几乎与ZF 以外的功能相同,不同之处在于所有通过index.php的请求路由,因此您并不实际路由到目录,只是告诉路由器链接所在的位置:

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

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

的网址助手会做到这一点的最佳方式应该有工作。在你的情况下,我怀疑localhost pathing os会给你的url造成困难,我知道它总是与我的一样。

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

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