2012-04-07 5 views
2

Ich habe diesen Code-Schnipsel in einem E-Mail-Layout:Wie kann ich einen vollständigen Link zu einem Bild im img-Tag durch den HTML-Helfer (Bildmethode) bekommen?

<div> 
    <?php echo $this->Html->image('Layouts/default/Logo.png', array(
     'alt' => 'Setin SRL', 
     'url' => $this->Html->url(array('action' => 'index'), true) 
    )); ?> 
    </div> 

jedoch nicht in Ordnung ist. Ich kann die vollständige URL zur Website durch url(array('action' => 'index'), true)

bekommen Aber ich kann keinen parameter finden, den ich auf True für das Bild auch einstellen kann. Irgendwelche Vorschläge oder Workarounds wie kann ich das tun?

Edit 1: Grundsätzlich, ich brauche diesen Link: Layouts/default/Logo.pnghttp://www.something.com/Layouts/default/Logo.png im img src

Antwort

1

ich immer

verwenden zu werden
$this->Html->link($this->Html->image(...), $this->Html->url(array('action' => 'index'), true), array('escape'=>false)); 
+0

Warten Sie, mein Problem ist der Verweis auf das Bild, nicht die Verbindung! Siehe meine Bearbeitung –

+1

das ist mein Punkt. Sie verwenden nur nicht Bild mit URL kombiniert auf diese Weise (ich mochte es noch nie, dass Sie eine URL auf diese Weise in erster Linie hinzufügen können). PS: Du kannst das selbe im image() Tag machen: '$ this-> Html-> image ($ this-> Html-> url (..., true))' – mark

+0

Ja aber wenn ich die * url benutze * Methode Ich vermisse die Möglichkeit, automatisch mit dem IMG-Verzeichnis (http: //mywebsite.something/img/Layouts/default/Logo.png) verknüpft zu werden, ich muss es manuell hinzufügen. Ich weiß, ist dumm, aber ich benutze nicht die hübsche URLs (Host-Probleme), so bekomme ich eine http: //mywebsite.something/index.php/img/... was nicht ok ist obviusly –

1

Ich denke, das ist das, was Sie suchen .

<? 
echo $this->Html->image(Router::url('/') . 'Layouts/default/Logo.png'); 
?> 
+0

Während ich denke, Ihre Antwort ist ** logisch ** die richtige, ich denke, Kuchen hat eine Art von Bug, tatsächlich gibt es aus: /app/webroot/index.php/Layouts/default/Logo.png der "Index. php "obviusly schafft das Problem (erinnere mich, dass ich die Rewrite-Mod für Hosting-Probleme deaktiviert haben) –

+0

Oh interessant, können Sie versuchen Router :: url ('/', wahr)? Funktioniert es? – Suman

+0

Mit "true" bekomme ich ein anderes Ergebnis, aber immer noch nicht gut: 'http: //www.xxx.com.localhost: 8080/index.php/Layouts/default/Logo.png" ' –

0
$img = '<img src="http://some-img-link" alt="some-img-alt"/>'; 

$src = preg_match('/<img src=\"(.*?)\">/', $img); 

echo $src; 

Ich mag den src Wert aus dem img-Tag erhalten und vielleicht den Alt-Wert

1

Was Sie suchen, ist wahrscheinlich die HtmlHelper::assetUrl-Funktion, die bei der Umsetzung der image Methode verwendet wird:

public function image($path, $options = array()) { 
    $path = $this->assetUrl($path, $options + array('pathPrefix' => Configure::read('App.imageBaseUrl'))); 
    ... 
+0

Ich glaube, das war nicht verfügbar, als ich an diesem Problem arbeitete –

Verwandte Themen