Абсолютные URL-адреса изображений CakePHP

Я хочу использовать вспомогательную функцию $html->image(...) в CakePHP для вывода изображений, но мне нужно, чтобы она создавала тег img, используя абсолютный, а не относительный URL-адрес (результирующий HTML-код будет загружен и отправлен по электронной почте в информационном бюллетене компании). Это возможно?

Это не задокументировано, но из исходного кода я заметил, что функция image может принимать массив в качестве первого аргумента. Однако мне не совсем понятно, как заставить это работать - наивная попытка сделать это таким образом создает URL-адреса изображений относительно текущей страницы, а не в папке webroot/img.


person andygeers    schedule 24.06.2009    source источник


Ответы (6)


В CakePHP 1.x используется следующий метод:

$this->Html->image($this->Html->url('/path_to_image/image.png',true));

В CakePHP 2.x используется следующий метод:

$this->Html->image('/path_to_image/image.png', array('fullBase' => true));
person JD Isaacks    schedule 10.08.2011
comment
@Jleagle Я обновил свой ответ, чтобы указать правильный путь в каждой версии. (1.3 была текущей версией, когда я изначально опубликовал этот ответ) - person JD Isaacks; 30.09.2012

Правильный способ сделать это в CakePHP 2.x:

<?php
echo $this->Html->image("logo.png", array('fullBase' => true));

Код взят прямо из поваренной книги: http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html

person WebbedIT    schedule 07.09.2012

$html->image('http://example.com/path_to_image/image.png'); должно помочь.

person dhofstet    schedule 24.06.2009
comment
Это должно быть девизом CakePHP :) - person Matthew Groves; 25.06.2009
comment
Что, если я перенесу свой сайт на example2.com? - person Matthew; 04.02.2014

Вы должны уметь использовать:

$html->image('http://[domain]/[path]/[image]')
person Paul Gleeson    schedule 10.08.2011

С изображением ссылки:-

<?php echo $this->Html->link($this->Html->image('logo.png',array('alt'=>'Logo')),'/', array('fullBase'=>true)); ?>

Отображение только изображений :-

<?php echo $this->Html->image('logo.png',array('alt'=>'Logo')),'/', array('fullBase'=>true); ?>
person Gaurang P    schedule 02.01.2014

‹img src="http://example.com/path_to_image/image.png" alt="" />

иногда лучше оставить самый простой способ

person Aziz    schedule 07.07.2009
comment
В случае с Cake это явно не так. - person Vael Victus; 06.08.2013