在我的<a>标签中,有很多代码 HTML。如何添加 Html 链接 (CakePHP)



我的代码:

<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>

如何在 CAKEPHP 2.x 中添加<?php echo $this->Html->link('...') ?>

如果要在任何HTML帮助程序中插入HTML元素,则必须添加"escape"=> false。检查文档 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]
);

如果您要使用安缦的答案,请记住,通过设置'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()的功能,但我怀疑这不是大多数用户关心的问题。

相关内容

  • 没有找到相关文章