在CakePHP的HtmlHelper图像中将html属性分配给url链接

时间:2012-09-04 21:14:15

标签: cakephp cakephp-2.0 html-helper

我正在尝试找到一种方法来设置由CakePHP的HtmlHelper的image方法生成的链接URL的属性。我正在使用CakePHP 2.2.1

例如,以下代码:

echo $this->Html->image("recipes/6.jpg", array(
    "alt" => "Brownies",
    'url' => array('controller' => 'recipes', 'action' => 'view', 6)
));

产生

<a href="/recipes/view/6">
    <img src="/img/recipes/6.jpg" alt="Brownies" />
</a>

如何向href标记添加属性。比方说,例如,class ='picture'看起来像:

<a href="/recipes/view/6" class='picture'>
    <img src="/img/recipes/6.jpg" alt="Brownies" />
</a>

3 个答案:

答案 0 :(得分:4)

您无法通过Html->image方法将HTML属性添加到Anchor标记 - 这样做的方法是将Html->image置于Html->link方法中,如下所示:

echo $this->Html->link(
    $this->Html->image("recipes/6.jpg", array('alt' => 'Brownies')),
    array('controller' => 'recipes', 'action' => 'view', 6, array('escape'=>false', 'class'=>'picture')
);

您还必须包含'escpape'=>false - 否则您的<img...>将被转义,并且会显示为&lt;img ... &gt;

答案 1 :(得分:-1)

如果您想使用HTML anchor tagHtmlHelper添加任何属性,那么您可以通过以下方式使用它:

<?php echo $this->Html->link(
$this->Html->image("loading.gif", array('alt' => 'Brownies', 'border' => '0')),
array('controller' => 'recipes', 'action' => 'view', 6),  array('class' => 'picture', 'escape' => false));

答案 2 :(得分:-1)

如果您仍在寻找答案,那么您需要做的是将$this->Html->image与可选的网址属性结合使用,而不是将$this->Html->link与可选的escape = false一起使用使用$this->Html->image将链接标题作为图片的属性。 escape = false所做的是链接标题中的特殊字符,允许您使用图像或其他html元素。

这是一个例子

echo $this->Html->link(
    $this->Html->image($image['Image']['file'], 'class' => 'image', 'alt' => $image['Image']['title'])),
'path/to/image', // or an array('controller' => 'mycontroller', 'action' => 'myaction')
 array('escape' => false));

您可以添加更多图片属性,例如我列出的类和alt,以及更多链接属性,例如我列出的转义。