如何在CakePHP“链接”中编写HTML标记?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我正在使用CakePHP 2.2并需要编写以下代码 -

<a data-original-title=" Edit " data-placement="left" rel="tooltip" href="/admin/static_pages/edit/1" class="btn btn-small">
  <i class="gicon-edit"></i>
</a>

我在CakePHP中编写了以下代码 -

 <?php echo $this->Html->link($this->Html->tag('i', '', array('class' => 'gicon-edit')),array('controller'=>'static_pages','action'=>'edit',$page['StaticPage']['id']), array('rel'=>'tooltip','data-placement'=>'left','data-original-title'=>'Edit','class'=>'btn btn-small'));  ?>

并得到以下结果 -

<a class="btn btn-small" data-original-title="Edit" data-placement="left" rel="tooltip" href="/erudites/admin/static_pages/edit/1">&lt;i class="gicon-edit"&gt;&lt;/i&gt;</a>

应该如何编写正确的HTML代码?

提问于
用户回答回答于

说明:

将该'escape'=>false选项添加到链接使它不会尝试翻译('转义')所有的html字符。

另外,我很少(如果EVER)觉得使用CakePHP很有帮助->tag()。只需编写标签 - 更容易(也更高效)。

示例代码:

echo $this->Html->link(
   '<i class="gicon-edit"></i>',
    array(
        'controller'=>'static_pages',
        'action'=>'edit',
        $page['StaticPage']['id']
    ),
    array(
        'rel'                 => 'tooltip',
        'data-placement'      => 'left',
        'data-original-title' => 'Edit',
        'class'               => 'btn btn-small',
        'escape'              => false  //NOTICE THIS LINE ***************
    )
);
用户回答回答于

你可能会发现使用urlHTML帮助程序的方法处理这种链接更容易: -

<a data-original-title=" Edit " data-placement="left" rel="tooltip" href="<?php echo $this->Html->url(array('controller'=>'static_pages','action'=>'edit',$page['StaticPage']['id'])) ?>" class="btn btn-small">
  <i class="gicon-edit"></i>
</a>

这仍然适当地路由URL,但可以使锚标记完全按照你想要的更简单。

当我不想在链接中使用简单的文本时,我个人采用这种方法,因为它比使用link方法更具可读性'escape'=>false

扫码关注云+社区