Phalconのviewでlinkを出力する
Voltテンプレートの場合
forやforeachの中で変数を展開してリンクを出力したい場合PhalconPHPではどのような方法があるのだろうか。
Phalcon謹製のVoltテンプレートの場合は以下の方法でリンクを出力することができる。以下のコードは、Controllerから渡されたpostsを繰り返し処理して、それぞれのデータを展開している。
{% for e in posts %} <tr> <td>{{ e.id }}</td> <td>{{ e.title }}</td> <td>{{ e.created }}</td> </tr> {% endfor %}
titleの項目をリンクテキストにしたのが下のコードになる。
{% for e in posts %} <tr> <td>{{ e.id }}</td> <td>{{ link_to('view/'~e.id, e.title) }}</td> <td>{{ e.created }}</td> </tr> {% endfor %}
文字列と変数の連結に[~]を利用して繰り返し処理内で動的なリンクを出力することが可能。aタグにclass属性などを追加するには以下のようにする。
<td>{{ link_to('view/'~e.id, e.title, 'class':'view-link') }}</td>
純粋なPHPで繰り返し処理を行いリンクを生成
Voltテンプレートを利用せずに繰り返し処理とリンクの出力を行ったのが下のコードになる。
<?php foreach ($posts as $e): ?> <tr> <td><?= $e->id?></td> <td><?= $this->tag->linkTo(array('view/'.$e->id, $e->title, 'class' => 'view-link')) ?></td> <td><?= $e->created?></td> </tr> <?php endforeach; ?>
Phalconのhtmlヘルパー
$this->tag->linkTo(array());
を利用してリンクを出力することができる。
PhalconにもHTMLヘルパーが用意されているようだ。