Почему в моей ссылке скрываются угловые скобки? - PullRequest
0 голосов
/ 28 октября 2011

Я создаю миниатюру изображения и хочу использовать ее в качестве ссылки.У меня есть следующий код

$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']));

Первый оператор эха работает правильно и отображает изображение.вторая отображает ссылку, которая выглядит такк.когда я просматриваю исходный код страницы, ссылка выглядит так:

<a href="/index.php/images/view/9">&lt;img src=&quot;/app/webroot/img/thumbs/fa741043357d4bf1ca39a58edf351d2a.JPG&quot; alt=&quot;&quot; /&gt;</a>

Я заметил, что угловые скобки на теге img экранированы.Что я делаю не так?

1 Ответ

6 голосов
/ 28 октября 2011

По соображениям безопасности, подобные сущности HTML экранируются в title по умолчанию при использовании метода link.

У вас есть два варианта:

метод imageможет принимать url в качестве параметра.

echo $this->Html->image('thumbs/' . $img, array('url'=> 
                                               array('controller'=>'images', 
                                                     'action'=>'view', 
                                                      $image['Image']['id'])
                                               )
                        );

или вы можете использовать метод link и отключить экранирование в 3-м параметре (где вы можете установить title, 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
                      );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...