2009-06-24 30 views
6

Desidero utilizzare la funzione helper $html->image(...) in CakePHP per l'output di immagini, ma ho bisogno di produrre un tag img utilizzando un URL assoluto anziché relativo (l'HTML risultante verrà scaricato e inviato via email in un'azienda newsletter). È possibile?URL immagine assoluti CakePHP

Non è documentato, ma osservo dal codice sorgente che la funzione image può utilizzare un array come primo argomento. Però non è del tutto chiaro come farlo funzionare - un ingenuo tentativo di farlo in questo modo produce URL di immagini relativi alla pagina corrente piuttosto che all'interno della cartella webroot/img.

risposta

28

In CakePHP 1.x il metodo è:

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

In CakePHP 2.x il metodo è:

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

+1 per la sola soluzione che è effettivamente portatile. – deizel

+0

Funziona ancora ma @WebbedIT è corretto per Cake 2.x – 472084

+0

@Jleagle Ho aggiornato la mia risposta per specificare il modo corretto in ogni versione. (1.3 era la versione corrente quando ho originariamente postato questa risposta) –

1

$html->image('http://example.com/path_to_image/image.png'); dovrebbe fare il trucco.

+3

che dovrebbe essere il motto di CakePHP :) –

+1

Che cosa succede se mi trasferisco il mio sito per essere in example2.com? – Matthew

-4

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

a volte è meglio per mantenere il modo più semplice

+0

Nel caso di Cake, è espressamente no. –

0

si dovrebbe essere in grado da usare:

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

Questo è corretto, questo non dovrebbe essere downvoted. –

0

con link Image: -

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

Solo Immagini Display: -

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