CakePHP - как использовать хелперы для создания ссылки на изображение с target = "_ blank" - PullRequest
11 голосов
/ 31 марта 2011

Кажется, все должно быть просто, но я новичок в CakePHP. Возможно, это просто то, что я должен написать в хорошем старом HTML, но - надеялся выяснить, как это сделать с помощью HTML-помощника CakePHP.

Я просто хочу ссылку на изображение с target = "_ blank".

Вот что я попробовал:

<?php echo $this->Html->link($this->Html->image('tmp/728x90.jpg',
    array('alt'=>'advertisement', 'height'=>'90', 
    'width'=>'728')),'http://www.google.com', array('target'=>'_blank')); ?>

(все в одной строке - просто разбиты для удобства просмотра)

Но когда я делаю это, я получаю это:

<a href="http://www.google.com" target="_blank">&lt;img src=&quot;/img/tmp/728x90.jpg&quot; alt=&quot;advertisement&quot; height=&quot;90&quot; width=&quot;728&quot; /&gt;</a>

Любая помощь очень ценится.


Ответ (спасибо deceze)

<?php 

$image = $this->Html->image(
    'tmp/300x600.jpg', 
    array(
        'alt'=>'advertisement', 
        'height'=>'600', 
        'width'=>'300'
    )
);

echo $this->Html->link(
    $image,
    'http://www.google.com', 
    array(
        'target'=>'_blank', 
        'escape' => false
    )
); ?>

Ответы [ 6 ]

12 голосов
/ 10 октября 2012
<?php echo $this->Html->link($this->Html->image('fb2.jpg',array('alt'=>'facebook', 'height'=>'90','width'=>'728')),'http://www.facebook.com', array('target'=>'_blank','escape'=>false)); ?>
3 голосов
/ 31 марта 2011

Вы должны указать HtmlHelper::link, чтобы HTML не экранировал ввод.
Все это очень хорошо задокументировано в руководстве .

0 голосов
/ 03 июля 2015

Точный код будет таким

  <?php 
         echo $this->Html->link(
                    $this->Html->image('tmp/728x90.jpg',
                                         array(
                                        'alt'=>'advertisement', 'height'=>'90',
                                        'width'=>'728')
                                       ),
                                    'http://www.google.com',
                                    array(
                                       'target'=>'_blank',
                                       'escape'=>false)
                                ); 
?>
0 голосов
/ 19 июня 2013

Как упомянуто в Кулинарной книге, вы можете использовать опцию 'url' метода изображения:

echo $this->Html->image("recipes/6.jpg", array(
   'alt' => "Brownies",
   'url' => array('controller' => 'recipes', 'action' => 'view', 6)
));
0 голосов
/ 05 апреля 2011

echo $ html-> link ("more", массив ('controller' => 'users', 'action' => 'index / welcome'), массив ('style' => '_ blank'), false , false);?> image ('more-arrow.png', массив ('alt' => 'more', 'height' => '11', 'width' => '17'))?>

0 голосов
/ 31 марта 2011

Вам нужно использовать Html-> изображение. Проверьте это:

http://book.cakephp.org/view/1441/image

...