在我的<a> tag, there are lots of code HTML. How to add Html link (CakePHP)

时间:2017-10-13 04:30:13

标签: cakephp cakephp-2.0 cakephp-helper

My code:

<a href="#">
  <div class="list_content">
      <p class="title"><?php echo $note['Note']['title']; ?></p>
      <p class="create_at"><?php echo $note['Note']['create_at'] ?></p>
      <p> <?php echo substr($note['Note']['content'], 0,100) . '...' ?></p>
   </div>
</a>

How to add <?php echo $this->Html->link('...') ?> in CAKEPHP 2.x

2 个答案:

答案 0 :(得分:2)

如果要在任何HTML帮助器中插入HTML元素,则必须添加&#39; escape&#39; =&GT;假即可。查看文档https://book.cakephp.org/2.0/en/core-libraries/helpers/html.html#HtmlHelper::link

简单示例:

$this->Html->link('<b>My Content</b>','#',[
    'escape' => false
]);

就你而言:

$this->Html->link(
    $this->Html->div('list_content',
        $this->Html->para('title',$note['Note']['title']).
        $this->Html->para('create_at',$note['Note']['create_at']).
        $this->Html->para(null,substr($note['Note']['content'], 0,100) . '...')
    ),
    '#',
    ['escape' => false]
);

答案 1 :(得分:0)

如果您要使用Aman的答案,请记住,通过设置'escape' => false您将禁用默认安全功能。因此,您可能希望确保使用h()方法转义任何用户输入: -

$this->Html->link(
    $this->Html->div('list_content',
        $this->Html->para('title', h($note['Note']['title'])).
        $this->Html->para('create_at', h($note['Note']['create_at'])).
        $this->Html->para(null, substr(h($note['Note']['content']), 0,100) . '...')
    ),
    '#',
    ['escape' => false]
);

如果您在<a>标记内添加了大量标记,则有时使用$this->Html->url()会更简单(并且可以使代码更易读): -

<a href="<?= $this->Html->url('#') ?>">
  <div class="list_content">
      <p class="title"><?php echo $note['Note']['title']; ?></p>
      <p class="create_at"><?php echo $note['Note']['create_at'] ?></p>
      <p> <?php echo substr($note['Note']['content'], 0,100) . '...' ?></p>
   </div>
</a>

我知道第二个示例的唯一真正缺点是您丢失了可能添加到$this->Html->link()的任何功能,但我怀疑这并不是大多数用户所关注的。