加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

html – Anchor Tag中的CakePHP Span标签

发布时间:2020-12-14 23:22:13 所属栏目:资源 来源:网络整理
导读:我正在尝试让Cake PHP输出一个如下所示的链接: a href="/foo/bar" class="some other classes" span class="icon new"/spanFooBar/a 所以我在视图中使用以下代码 ?php echo $this-Html-link($this-Html-tag('span',null,array('class' = 'icon new')) . "Fo
我正在尝试让Cake PHP输出一个如下所示的链接:
<a href="/foo/bar" class="some other classes">
     <span class="icon new"></span>FooBar</a>

所以我在视图中使用以下代码

<?php 
echo $this->Html->link(
$this->Html->tag('span',null,array('class' => 'icon new')) . "FooBar",array('controller' => 'foo','action' => 'bar'),array('class' => 'some other  classes','escape' => false)
     );
?>

但CakePHP输出如下:

<a href="/foo/bar" class="some other classes">
     <span class="icon new">FooBar</span></a>

这打破了我的设计.如何在< span>之后让CakePHP附加“FooBar”标签?

编辑:还值得一提的是我知道< span>标签通常不应该在锚标签内,但在必须的情况下.

解决方法

您需要使用空字符串而不是null作为span的文本,然后您的代码将按预期工作.

查看HtmlHelper的源代码,null被视为“特殊”值,只会创建跨度的开始标记.你可以在这一行看到这个:

https://github.com/cakephp/cakephp/blob/2.3.2/lib/Cake/View/Helper/HtmlHelper.php#L906

将您的代码更改为此代码应该可以正常工作;

echo $this->Html->link(
    $this->Html->tag('span','','escape' => false)
);

关闭< / span>的附加说明

对于那些想知道的人,有点解释:

结束< / span>在你的例子中,实际上不存在于CakePHP生成的输出中,但是由浏览器自动“添加”.如果您在浏览器中查看HTML的来源,您会发现这实际上是HTML中的内容:

<a href="/foo/bar" class="some other classes">
 <span class="icon new">FooBar</a>

如你所见,没有关闭’跨度’

因为< span>未关闭,浏览器将尝试更正此错误并自动假设您“忘记”关闭它.因此,它将添加一个结束< / span>在它找到的下一个标记之前(在这种情况下是结束< / a>).

浏览器中的“检查器”将始终显示浏览器用于呈现输出的HTML.这包括由浏览器和动态生成的元素(例如,通过JavaScript添加的元素)进行的自动更正.

要检查PHP脚本的输出,请始终查看源,而不是检查器

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读