español - Cómo escribir la etiqueta HTML en CakePHP "enlace"
cakephp tutorial (3)
Estoy usando CakePHP 2.2 y necesito escribir el siguiente código -
<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>
He escrito el siguiente código en 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'')); ?>
y obteniendo el siguiente resultado -
<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>
¿Cómo se debe escribir el código HTML correcto?
Ampliando la respuesta de drmonkeyninja:
Para CakePHP 3.X utilizarías:
<a data-original-title=" Edit " data-placement="left" rel="tooltip" href="<?php echo $this->Url->build(array(''controller''=>''static_pages'',''action''=>''edit'',$page[''StaticPage''][''id''])) ?>" class="btn btn-small">
<i class="gicon-edit"></i>
</a>
( $this->Url->build
lugar de $this->Html->url
)
Puede que le resulte más fácil manejar este tipo de enlace usando el método url
del ayudante de HTML:
<a data-original-title=" Edit " data-placement="left" rel="tooltip" href="<?php echo $this->Html->url(array(''controller''=>''static_pages'',''action''=>''edit'',$page[''StaticPage''][''id''])) ?>" class="btn btn-small">
<i class="gicon-edit"></i>
</a>
Esto sigue enrutando correctamente la URL, pero puede hacer que escribir la etiqueta de anclaje exactamente como usted quiere sea mucho más simple.
Personalmente, tomo este enfoque cuando no quiero solo un texto simple en un enlace, ya que puede ser más legible que usar el método de link
con ''escape''=>false
.
Explicación:
Agregar la opción ''escape''=>false
a su enlace hace que no intente traducir (''escapar'') todos sus caracteres html.
Además, raramente (si es que SIEMPRE) me parece útil usar CakePHP''s ->tag()
. Simplemente escriba la etiqueta - mucho más fácil (y más eficiente).
Código de ejemplo:
echo $this->Html->link(
''<i class="gicon-edit"></i>'',
array(
''controller''=>''static_pages'',
''action''=>''edit'',
$page[''StaticPage''][''id'']
),
array(
''rel'' => ''tooltip'',
''data-placement'' => ''left'',
''data-original-title'' => ''Edit'',
''class'' => ''btn btn-small'',
''escape'' => false //NOTICE THIS LINE ***************
)
);
Los detalles aquí: http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html#HtmlHelper::link
PD: Obviamente, el código podría ser de 1 línea si lo prefieres, simplemente lo rompió aquí para facilitar la lectura.