ti-enxame.com

CakePHP - usando $ this-> Html-> link com $ this-> Html-> image .... gerando ascii em vez de HTML real

Estou usando o cakephp 2.3.0. Procurei no manual por um bom tempo, mas não encontrei a resposta. Estou tentando usar o link $ this-> Html->, junto com $ this-> Html-> image. Estou tentando criar a capacidade de clicar em uma imagem. Alguma idéia de por que a prestação ascii de cotações está sendo gerada?

Aqui está o meu código de fragmento na minha opinião 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')),
            )
         )  
      );

Abaixo está o resultado HTML real do código acima. Como você pode ver, o HTML gerado está mostrando a versão ascii das aspas (") e '<' e '>':

<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>

Abaixo está o que eu esperaria que o HTML se parecesse com:

<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

Você precisa adicionar a opção escape à matriz de opções de suas chamadas link(). Defina como false, desta forma:

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

Sim É possível fazer uma imagem como tag âncora. Você só precisa definir o escape = false como abaixo:

<?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'));

Este é normal imagem sem qualquer link, agora para envolvê-lo com o uso de tag de 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]);

Da mesma forma, você pode atribuir a tag de imagem a uma variável e usá-la

$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

Tente isto:

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

Eu vinculei a imagem à classe deleteImg.

0
sabin