使用 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/