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