【问题标题】:ZF routing problemZF路由问题
【发布时间】:2009-08-13 18:16:38
【问题描述】:

我刚开始使用 zend 框架 1.9.1 进行冒险,但遇到了一些问题。我想删除默认路由以避免在不同的 URL 上显示相同的内容 - 为了实现它,我在引导程序中编写了自定义函数

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initMyRouter()
    {
        $this->bootstrap('router')
             ->getContainer()
             ->frontcontroller
             ->getRouter()
             ->removeDefaultRoutes();
    }
}

但在那之后,出现了一个问题——每个无效的 URL 都到达默认控制器而不是错误控制器。为了解决这个问题,我把 resources.frontController.defaultcontrollername = "错误" resources.frontController.defaultaction = "投掷" 在 application.ini 和

public function throwAction()
{
    throw new Zend_Controller_Dispatcher_Exception;
}

在 ErrorController 中解决这个问题,但我的问题是......我做错了什么吗?

第二个问题是我只需要生成绝对 URL,因此我在 application.ini 中添加了 resources.frontController.baseurl = "http://mydomain.com/" 但之后每个 URL 都指向默认控制器。如何解决?

第三个(也是最后一个)是...如何在我的操作中调用 Zend_Controller_Action_Helper_Url::url?我尝试了类似 $this->_helper->url(array(), 'frontpage') 但它调用 Zend_Controller_Action_Helper_Url::direct

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

    我会先回答第三个问题,因为我可以不假思索地告诉你。

    我一般用$this-&gt;view-&gt;url(array(...), 'routeName', true);最后一个参数重置参数。我发现视图助手比操作助手更容易/更快地输入。虽然我认为$this-&gt;_helper-&gt;url-&gt;url(...) 是获取动作助手的正确方法。

    我从未删除过默认路线 - 但如果当天晚些时候没有任何其他答案 - 我会尽力在下班后为您做一些测试。

    【讨论】:

      猜你喜欢
      • 2011-07-15
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 2018-09-30
      • 2016-11-09
      相关资源
      最近更新 更多