在<a> using CakePHP HTML Helper</a>内输出多个元素

时间:2012-04-26 05:10:21

标签: cakephp

我想知道这段代码是否......

echo $this->Html->link(
    "<h3>test</h3>".$this->Html->image("image.jpg")."<p>Some text</p>",
    "/link",
    array('escape' => false)
);

...是在CakePHP中生成此HTML的最佳方式...

<a href="/path/to/link">
    <h3>test</h3>
    <img alt="" src="/path/to/image.jpg">
    <p>Some text</p>
</a>

或者,是否有更“正确”的方法呢?我希望和

都在标签内,这样我就可以在CSS中设置为display: block;并使整个区域可以悬停效果点击。

有些东西告诉我,像这样回应的HTML不是正确的方法,但如果我要使用HTML Helper,我就看不到替代方案。有吗?

2 个答案:

答案 0 :(得分:1)

只需使用HTML帮助程序的URL方法而不是链接一,将其余部分用作静态HTML,也可以将PHP的数量保持在我看来的最小值。

<a href="<?php echo $this->Html->url($params); ?>">
    <h3>test</h3>
    <?php echo $this->Html->image($params); ?>
    <p>Some text</p>
</a>

这将是执行此任务的最高效方式。但也许您应该考虑一下您的标记结构以及您想要实现的目标......

答案 1 :(得分:1)

我用

$this->Html->tag('li',
                     $this->Html->link(
                     '<i class="entypo-book"></i>'.
                     $this->Html->tag('span', $nom
                     .$this->Html->tag('span', '32', array('class' => 'badge'))
                     ),
                     array('controller' => 'Pages', 'action' => 'index'),
                     array('class' => 'active', 'title' => 'Pages', 'escape' => false)
                     )
                 ); 
相关问题