CHtml:: link - как добавить класс html?

В документах мы можем прочитать:

public static string link(string $text, mixed $url='#', array $htmlOptions=array ( ))

Вопрос: Я не понимаю, что означает $htmlOptions. Я не понимаю, как перейти от этого представления к реальному коду.

Может ли кто-нибудь указать пример того, как мы можем создать ссылку с определенным классом. Что-то вроде:

<a href="#" class="hello">link hello</a>

Ответ 1

Это проще, чем вы могли бы подумать, хотя документация Yii, возможно, немного сложнее, чем должно быть. Однако он говорит, что $htmlOptions есть

дополнительные атрибуты HTML. Помимо обычных атрибутов HTML, несколько специальные атрибуты также распознаются (см. clientChange и тег для более подробно.)

В сущности, любые пары ключей/значений, которые вы помещаете в массив, выйдут как атрибуты HTML¹. Итак, что вы хотите сделать, это

CHtml::link('link hello', '#', array('class' => 'hello'));

¹ помимо "специальных" значений, на которые ссылаются документы, которые не будут отображаться в HTML как есть, либо либо изменить способ link, либо немного повлиять на HTML.

Ответ 2

<?php echo CHtml::link('Link Text',array('controller/action','param1'=>'value1'), array('target'=>'_blank','class'=>'hello'); ?>

Это будет показано ниже.

<!--if you disabled url manager in "protected/config/main.php" the output will be -->
<a target="_blank" class="hello" href="index.php?r=controller/action&param1=value1">Link Text</a>

<!--if you enabled url manager in "protected/config/main.php" the output will be -->
<a target="_blank" class="hello" href="controller/action/param1/value1">Link Text</a>

Чтобы получить подробное описание о CHtml в yii, проверьте ссылку .

Ответ 3

<?php echo CHtml::link("Label Text" , array("/controller_here/action_here") , array('class' => 'class_here')); ?>

или

<?php echo CHtml::link("Label Text" , Yii::app()->createUrl("/controller_here/action_here") , array('class' => 'class_here')); ?>