web-dev-qa-db-fra.com

CakePHP - en utilisant $ this-> html-> lien avec $ this-> html-> image .... générer ascii au lieu de HTML réel

J'utilise cakephp 2.3.0. J'ai cherché dans le manuel pendant un bon bout de temps, mais je n'ai pas trouvé de réponse. J'essaye d'utiliser $ this-> html-> link, avec $ this-> html-> image. J'essaie de créer la possibilité de cliquer sur une image. Des idées sur les raisons pour lesquelles le rendu ascii des citations est généré?

Voici mon code snippet à mon avis ctp:

echo $this->html->tableCells(
        array(
            array(
                array (
                   $this->Html->link($myActivity['Activity']['name'], array('controller' => 'users', 'action' => 'edit'), array('title' => '')), 
                            array('align' => 'left')),
                    array ($myActivity['Activity']['status'], array('align' => 'left')),
                    array ($myActivity['Activity']['any_messages'], array('align' => 'left')),
                    $date2,
                    array ($this->Html->link(
                            $this->Html->image('pencil.jpg', array('alt' => 'Edit', 'border' => '0', 'width' => '25')), 
                            array('controller' => 'users', 'action' => 'add'), array('title' => ''))
                    ),
                    $this->Html->image('trashcan.jpg', array('alt' => 'Delete', 'border' => '0', 'width' => '25')),
                    $this->Html->image('copy.png', array('alt' => 'Copy', 'border' => '0', 'width' => '25')),
            )
         )  
      );

Vous trouverez ci-dessous le résultat HTML réel du code ci-dessus. Comme vous pouvez le constater, le code HTML généré affiche la version ascii de guillemets (") et '<' et '>':

<tr>
    <td align="left">
        <a href="/activities/index.php/users/add" title="">Running</a>
    </td>
    <td align="left">Live</td>
    <td align="left">no</td>
    <td>02/18/13</td>
    <td>
        <a href="/activities/index.php/users/edit" title="">&lt;img src=&quot;/activities/app/webroot/img/pencil.jpg&quot; alt=&quot;Edit&quot; border=&quot;0&quot; width=&quot;25&quot; /&gt;</a>
    </td>
    <td>
        <img src="/activities/app/webroot/img/trashcan.jpg" alt="Delete" border="0" width="25">
    </td>
</tr>

Voici ce à quoi le HTML devrait ressembler:

<tr>
    <td align="left">
        <a href="/activities/index.php/users/add" title="">Running</a>
    </td>
    <td align="left">Live</td>
    <td align="left">no</td>
    <td>02/18/13</td>
    <td>
        <a href="/activities/index.php/users/edit" title="">
            <img src="/activities/app/webroot/img/pencil.jpg" alt="Edit" border="0" width="25"></a>
    </td>
    <td>
        <img src="/activities/app/webroot/img/trashcan.jpg" alt="Delete" border="0" width="25">
    </td>
</tr>
8
Kevin

Vous devez ajouter l'option escape au tableau d'options de vos appels link(). Réglez-le sur false, comme ceci:

echo $this->Html->link(
    $this->Html->image('mydog.jpg'), '/lol.html', array('escape' => false)
);
21
Matt Cain

Oui Il est possible de créer une image en tant que balise d'ancrage. Vous avez juste besoin de définir escape = false pour cela comme ci-dessous: -

<?php
$thumb_img = $this->Html->image('yourimage.png',array('alt'=>'yoursite.com','class'=>'yourclass'));

echo $this->Html->link( $thumb_img, array('controller'=>'yourcontroller','action'=>'youraction'), array('escape'=>false));

?>
1
Ravi Roshan
echo $this->Html->image('imagename',array('alt'=>'myimage','class'=>'img-responsive'));

Ceci est normal image sans aucun lien, maintenant pour l'envelopper avec l'utilisation de balise link

echo $this->Html->link($this->Html->image('imagename',array('alt'=>'myimage', 'title'=>'myimage','class'=>'img-responsive')), [
                      'controller' => 'controllerName',
                      'action'     => 'actionName',
                      'id'         => $value['id'], //if any parameters are passed
                      ],['escape'    => false]);

De même, vous pouvez affecter le tag image à une variable et l'utiliser

$myImageVar = $this->Html->image('imagename',array('alt'=>'myimage','class'=>'img-responsive'));

echo $this->Html->link($myImageVar, [
                          'controller' => 'controllerName',
                          'action'     => 'actionName',
                          'id'         => $value['id'], //if any parameters are passed
                          ],['escape'    => false]);
1
Pooja

Essaye ça :

echo $this->Html->link('', array(
   'controller' => 'Mycont',
   'action'     => 'deletepic',
   $id
), array(
   'confirm'    => 'Are you sure you want to delete the image?',
   'class'      => 'deleteImg'
));

J'ai lié l'image à la classe deleteImg.

0
sabin