2009-06-24 18 views
6

Chciałbym użyć funkcji pomocnika $html->image(...) w CakePHP do wyprowadzania obrazów, ale potrzebuję go do stworzenia znacznika img używając bezwzględnego, a nie względnego adresu URL (wynikowy kod HTML zostanie pobrany i przesłany pocztą e-mail w firmie biuletyn). czy to możliwe?Absolutne adresy URL CakePHP

Nie jest to udokumentowane, ale zauważam, patrząc na kod źródłowy, że funkcja image może przyjąć tablicę jako pierwszy argument. Nie jest dla mnie zupełnie jasne, jak to działa - naiwna próba zrobienia tego w ten sposób tworzy adresy URL obrazów w stosunku do bieżącej strony, a nie do folderu webroot/img.

Odpowiedz

28

W CakePHP 1.x metoda jest:

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

W CakePHP 2.x metoda jest:

$this->Html->image('/path_to_image/image.png', array('fullBase' => true)); 
+1

+1 tylko dla rozwiązania, które jest rzeczywiście przenośne. – deizel

+0

Nadal działa, ale @WebbedIT jest poprawne dla Cake 2.x – 472084

+0

@Jleagle Zaktualizowałem swoją odpowiedź, aby określić prawidłowy sposób w każdej wersji. (1.3 była aktualna wersja, gdy pierwotnie opublikowałem tę odpowiedź) –

1

$html->image('http://example.com/path_to_image/image.png'); powinien załatwić sprawę.

+3

To powinno być motto CakePHP jest :) –

+1

Co jeśli mogę przenieść moją witrynę, aby być na example2.com? – Matthew

-4

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

czasem lepiej zachować najprostszy sposób

+0

W przypadku Cake nie jest to wyraźnie. –

0

Powinieneś być w stanie używać:

$html->image('http://[domain]/[path]/[image]') 
+0

Jest to poprawne, nie należy tego cofać. –

0

z linkiem Image: -

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

tylko zdjęć Wyświetlacz: -

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