我正在尝试找到一种方法来设置由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>
答案 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...>
将被转义,并且会显示为<img ... >
答案 1 :(得分:-1)
如果您想使用HTML anchor tag
向HtmlHelper
添加任何属性,那么您可以通过以下方式使用它:
<?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,以及更多链接属性,例如我列出的转义。