2009-12-10 4 views
1

J'ai quelques images à l'intérieur des liens que je veux regarder essentiellement comme ceci:CakePHP: image à l'intérieur lien, veulent faire le point de lien vers une image

<a href="/path/to/img.png"><img src="/path/to/img.png" /></a> 

En cliquant sur le lien doit charger l'image qu'il contient. Je suis en train d'utiliser l'aide HTML de CakePHP pour ce faire, comme suit:

<?php 
    echo $html->link(
    $html->image('img.png'), 
    'img.png', 
    array('escape' => false) 
); 
?> 

Quand je fais cela, cependant, je reçois le code suivant:

<a href="/pages/img.png"><img src="/path/to/img.png" /></a> 

Sans utiliser des URL absolues, puis-je définir l'attribut href du lien à l'emplacement correct de l'image?

Merci!

Répondre

3

Cela devrait faire l'affaire:

echo $html->image('image.png', array('url' => '/' . IMAGES_URL . 'image.png')); 
+0

Parfait! Je ne connaissais pas la constante 'IMAGES_URL'. Merci. – Jared

4

vous pouvez aussi le faire en 1,2

echo $html->link(
    $html->image('img.png'), 
    'img.png', 
    array(), 
    null, 
    false 
); 

ou 1,3

echo $html->link(
    $html->image('img.png'), 
    'img.png', 
    array(), 
    array('escape' => false),  
); 
+0

Merci pour la réponse, mais en laissant l'URL du lien comme 'img.png' Cake utilise le contrôleur' Pages' pour le gérer, rendant l'URL 'example.com/pages/img.png'. C'est pourquoi la constante 'IMAGES_URL' est nécessaire. Mon code a fini par ressembler à ceci:.. echo $ html-> Lien ( $ html-> image ('de img.png'), '/' IMAGES_URL '/img.png', array ('évasion '=> faux) ); – Jared

Questions connexes