【CakePHP2.x】HTMLヘルパーによるリンク生成

構文

<?php
$this->Html->link(
                文字列や画像等, 
                リンク情報(パラメータ),
                その他の情報
        );
?>
コントローラ名を手動で設定する場合
  • リンク情報の先頭にスラッシュを記述する
  • 連想配列でコントローラ名やアクション名を指定
<?php
$this->Html->link(
                '検索する',
                '/mychuno/' . $action . $parameter
        );
?>

<?php
$this->Html->link(
                'TOPページに戻る',
                array(
                        ‘controller’ => 'mychuno',
                        ‘action’ => 'index',
                        'parameter' => $parameter                        
                )
        );
?>
コントローラ名を特に指定しない場合

以下の様な書き方をすると、所属しているコントローラ名が用いられる。

<?php
$this->Html->link(
                '検索する',
                'search' . $id
        );
?>

↑コントローラが「hoge」であれば、リンクのURLは

/hoge/search/$idの中身

となる。

リンク付き画像の表示

ビュー側
<?php
$this->Html->link(
                $this->Html->image(画像の情報), 
                array(
                        ‘controller’ => コントローラ名,
                        ‘action’ => アクション名
                ),
                array(‘escape’ => false)
        );
?>

最後の配列を省略(escapeをtrueに)すると、画像ではなく画像へのパスが表示される。

GETパラメータ付きのURLを生成する

例えば、

/hchuno?params=3

のようなリンクを生成したい場合(actionはindex)、

<?php
$this->Html->link(
                ‘hoge’, 
                array(
                        ‘controller’ => ‘hchuno’,
                        ‘?=> array(‘params’ => 3)
                ),
        );
?>