我正在生成图片的缩略图,我想将缩略图用作链接。我有以下代码
$img = $thumbnail->show($options, $tag_options);
echo $this->Html->image("thumbs/".$img);
echo $this->Html->link($this->Html->image("thumbs/".$img),array('controller'=>'images', 'action'=>'view', $image['Image']['id']));
第一个echo语句正常工作并显示图像。第二个显示一个看起来像这样的链接
<img src="/app/webroot/img/thumbs/fa741043357d4bf1ca39a58edf351d2a.JPG" alt="" />
现在该链接正常工作,因为它占用了该图像的视图页面,但它没有像我期望的那样显示图像。当我查看页面源时,链接如下所示:
<a href="/index.php/images/view/9"><img src="/app/webroot/img/thumbs/fa741043357d4bf1ca39a58edf351d2a.JPG" alt="" /></a>
我注意到img标签上的尖括号被转义了。我做错了什么?
答案 0 :(得分:6)
出于安全原因,默认情况下,使用title
方法时,link
中的HTML实体会在image
中进行转义。
您有两种选择:
url
方法可以将echo $this->Html->image('thumbs/' . $img, array('url'=>
array('controller'=>'images',
'action'=>'view',
$image['Image']['id'])
)
);
作为参数。
link
或者您可以使用title
方法并关闭转义,在第3个参数中(您可以设置id
,class
,echo $this->Html->link($this->Html->image("thumbs/".$img),
array('controller'=>'images',
'action'=>'view', $image['Image']['id']),
array('escape'=>false, 'class'=>'example') // here
);
等)
{{1}}