3

我试图找到一种方法来设置由 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>
4

3 回答 3

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;

于 2012-09-05T13:27:08.907 回答
-1

如果要向HTML anchor tagusing添加任何属性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));
于 2012-09-05T06:17:09.567 回答
-1

如果您仍在寻找答案,您需要做的不是使用$this->Html->image可选 URL 属性,而是使用$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,以及更多链接属性,例如我列出的转义。

于 2013-02-25T15:55:46.440 回答