php - 如何编写正文中包含 anchor 标记的 Zend Framework URL?

标签 php zend-framework zend-framework-mvc

使用 Zend Framework 中设置的标准 MVC,我希望能够显示始终具有 anchor 的页面。现在我只是在 .phtml 文件中添加一个无意义的参数和我想要的“#anchor”。

<?= $this->url(array(
    'controller'=>'my.controller',
    'action'=>'my.action',
    'anchor'=>'#myanchor'
));

这会将 URL 设置为/my.controller/my.action/anchor/#myanchor

有没有更好的方法来实现这一点?导航到 anchor 链接后,会在用户的 URL 中设置额外的项目参数,这是我不希望发生的事情。

最佳答案

其中一种可能性是覆盖 url 帮助程序,或者创建一个新的。

class My_View_Helper_Url extends Zend_View_Helper_Url
{    
    public function url(array $urlOptions = array(), $name = null, $reset = false, $encode = true)
    {
        if (isset($urlOptions['anchor']) && !empty($urlOptions['anchor']))
        {
            $anchor = $urlOptions['anchor'];
            unset($urlOptions['anchor']);
        }
        else
        {
            $anchor = '';
        }

        return parent::url($urlOptions, $name, $reset, $encode).$anchor;
    }
}

这个帮助器覆盖了 url 帮助器,问题是,你不能使用名为“anchor”的参数,因为它会在 url 中变成 anchor 。

你会像你的例子那样调用它

<?= $this->url(array(
    'controller'=>'my.controller',
    'action'=>'my.action',
    'anchor'=>'#myanchor'
));

希望对你有帮助

关于php - 如何编写正文中包含 anchor 标记的 Zend Framework URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/405338/

相关文章:

javascript - TinyMCE 集成 - 插件不会显示

php - 无法让 Codeception 在多站点上使用 wp_query

php - 使用 PayPal API 计算有效订阅?

php - zend 框架仅引导特定模块

zend-framework - ZEND SOAP 方法必须通过 SSL 访问

php - Bootstrap 资源加载在 Linux 和 Windows 中不同

php - 在 Zend Framework 2 中动态加载模块

zend-framework-mvc - ZF3 zend-mvc 一个模块中许多 Controller 的通用路由不起作用

密码和哈希的 PHP AES 加密