HtmlHelper
クラスを使用すると、様々なリンクを出力することができます。
HtmlHelper
オブジェクトには、View のテンプレート (*.ctp
) 内から、
$this->Html
のように参照できます。
リンクを生成するときは、HtmlHelper
の link()
メソッドを使用します。
$this->Html->link($title, array('controller' => 'tasks', 'action' => 'view', $id)
(CakePHP 1.X の頃は $html->link() のような書き方でした)
例えば上記のようにすると、
<a href="/tasks/view/1">Title1</a>
のような HTML 要素に変換されます。
これだけだと、あまり便利になったようには見えませんが、link()
メソッドは、Confirm ダイアログなどを表示する機能なども備えています。
以下のサンプルコードは、タスクの一覧表示のページで、HtmlHelper#link()
を使った例です。
各タスクのタイトルにリンクを貼り、タスクの詳細ページにジャンプできるようにしています。
<h1>Task List</h1>
<table>
<tr>
<th>ID</th>
<th>Title</th>
<th>Created</th>
</tr>
<?php foreach ($tasks as $t): ?>
<tr>
<td><?php echo $t['Task']['id'] ?></td>
<td><?php echo $this->Html->link($t['Task']['title'],
array('controller' => 'tasks', 'action' => 'view', $t['Task']['id'])) ?></td>
<td><?php echo $t['Task']['created'] ?></td>
</tr>
<?php endforeach; ?>
</table>