Как написать HTML-тег в CakePHP «ссылка»

Я использую CakePHP 2.2 и мне нужно написать следующий код -

<a data-original-title=" Edit " data-placement="left" rel="tooltip" href="/admin/static_pages/edit/1" class="btn btn-small">
  
</a>

Я написал следующий код в CakePHP -

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

и получить следующий результат -

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

Как должен быть написан правильный HTML-код?

Ответы на вопрос(3)

Решение Вопроса

Объяснение:

Добавление'escape'=>false вариант по вашей ссылке делает это такне пытайтесь перевести ('побег') все ваши символы HTML.

Кроме того, я редко (если когда-либо) считаю полезным использовать CakePHP->tag(), Просто напишите тег - намного проще (и эффективнее).

Пример кода:

echo $this->Html->link(
   '',
    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 ***************
    )
);

Подробности здесь:http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html#HtmlHelper::link

PS Очевидно, что код может быть однострочным, если выЯ бы предпочел - просто разбил его здесь для удобства чтения.

 yossi06 июн. 2013 г., 16:30
не только проще, но и эффективнее
 Dave06 июн. 2013 г., 16:31
@yossi - хорошая мысль. Даааа этос избытком во многих отношениях.
 Mohit Tripathi06 июн. 2013 г., 16:49
@ Дэйв, я сделал это, просто применив "</ Я>», Спасибо за вашу помощь :)
 Mohit Tripathi06 июн. 2013 г., 16:44
Привет, Дэйв, я применил предложенный тобой код, он работает, но дает мне дополнительное «<я>» пометить как следующее - <класс = "btn btn-small " Данные оригинал-название =»Редактировать" данные размещение =»оставил" отн =»всплывающая подсказка» HREF =»/ Эрудитов / администратор / static_pages / редактировать / 1" > <я класс = "GIcon-редактирование "> </ Я> </ А> <я класс = "GIcon-редактирование "> <класс = "btn btn-small " Данные оригинал-название =»Посмотреть" данные размещение =»Топ" отн =»подсказка "> <класс = "БТН БТН-обратный БТН-маленький " Данные оригинал-название =»Удалить" данные размещение =»низ" отн =»подсказка "> </ Я>

Возможно, вам будет проще обрабатывать ссылки такого рода, используяurl Метод помощника 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">
  
</a>

Это все еще правильно направляет URL, но может сделать написание тега привязки именно так, как вы хотите, намного проще.

Я лично использую этот подход, когда я нене требуется простой текст в ссылке, так как он может быть более читабельным, чем использованиеlink метод с.'escape'=>false

 Dave06 июн. 2013 г., 16:53
Единственным недостатком является отсутствие настройки позже. В качестве случайного примера, вы можете расширить помощник, чтобы дать все ссылки, которые идут на "сообщения» Контролировать определенный класс для изменения их цвета ... и т. д. Используя помощника, вы оставляете все эти забавные вещи открытыми / доступными
 drmonkeyninja06 июн. 2013 г., 17:05
Правда. Хотя этоэто не то, что якогда-либо нужно было достичь лично. Я предпочитаю такое поведение на самом деле в моих шаблонах.

Расширение на дрмонкейниньяответ:

Для CakePHP 3.X вы бы использовали :(

<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">
  
</a>

$this->Url->build вместо )$this->Html->url

Ваш ответ на вопрос