Comment écrire une balise HTML dans CakePHP “lien”
Je suis en utilisant le CakePHP 2.2 et besoin d'écrire de code suivant -
<a data-original-title=" Edit " data-placement="left" rel="tooltip" href="/admin/static_pages/edit/1" class="btn btn-small">
<i class="gicon-edit"></i>
</a>
J'ai écrit le code suivant dans CakePHP -
<?php echo $this->Html->link($this->Html->tag('i', '', array('class' => 'gicon-edit')),array('controller'=>'static_pages','action'=>'edit',$page['StaticPage']['id']), array('rel'=>'tooltip','data-placement'=>'left','data-original-title'=>'Edit','class'=>'btn btn-small')); ?>
et d'obtenir le résultat suivant -
<a class="btn btn-small" data-original-title="Edit" data-placement="left" rel="tooltip" href="/erudites/admin/static_pages/edit/1"><i class="gicon-edit"></i></a>
Comment le corriger du code HTML d'être écrit?
Vous devez vous connecter pour publier un commentaire.
Explication:
L'ajout de la
'escape'=>false
option pour votre lien qui le rend si il n'essayez pas de traduire ("échapper"), toutes les caractères html.Aussi, j'ai rarement (voire JAMAIS) trouvent utile d'utiliser les
->tag()
. Il suffit d'écrire la balise - beaucoup plus facile (et plus efficace).Exemple de code:
Plus de détails ici: http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html#HtmlHelper::link
PS, Évidemment, le code pourrait être un 1-liner si vous préférez - juste cassé ici pour en faciliter la lecture.
Vous pouvez trouver plus facile de gérer ce genre de lien à l'aide de la
url
méthode du helper HTML:-Ce toujours correctement routes de l'URL, mais peut faire de l'écriture de la balise d'ancrage exactement comme vous voulez beaucoup plus simple.
Personnellement, je prends cette approche quand je ne veux pas juste un simple texte dans un lien qu'il peut être plus lisible qu'à l'aide de la
link
méthode avec'escape'=>false
.Expansion sur drmonkeyninja réponse:
Pour CakePHP 3.X, vous devez utiliser:
(
$this->Url->build
au lieu de$this->Html->url
)