web-dev-qa-db-ja.com

CHtml :: link-htmlクラスを追加する方法は?

ドキュメントで私たちは読むことができます:

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

質問:ここで$ htmlOptionsが何を意味するのかわかりません。この表現から実際のコードに渡す方法がわかりません。

誰かが定義されたクラスでリンクを生成する方法についての例を提供できますか?何かのようなもの:

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

Yiiのドキュメントはおそらく必要以上に複雑ですが、想像以上に簡単です。しかし、それは$htmlOptions

追加のHTML属性。通常のHTML属性に加えて、いくつかの特別な属性も認識されます(詳細については、clientChangeとtagを参照してください)。

本質的に、配列に入力したキーと値のペアはすべてHTML属性として出力されます¹。だから、あなたがしたいのは

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

¹ドキュメントが参照する「特別な」値を除きます。これは、HTMLでそのままレンダリングされることはありませんが、linkの動作方法をわずかに変更するか、他の方法でHTMLに影響を与えることになります。

24
Jon
<?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>

yiiこれをチェックしてください リンク でCHtmlに関する詳細な説明を取得するには。

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