CakePHPのビューで画像リンクを出力する

画像リンクの出力方法を何度も忘れて調べ直している自分のために書き残しておきます。
対象CakePHPバージョンは1.2です。

<?php
echo $html->link($html->image("path/to/image",array("alt"=>"代替テキスト")),"url",array(),false,false);
?>

path/to/image には、/app/webroot/img からの相対パスを指定します。
ただし、先頭に “/” をつけると “app/webroot” 以下を指定することになります。
url には CakePHP相対パス (/controller/action) を指定します。
array(“controller”=>”コントローラー名”,”action”=>”メソッド名”,パラメーター)
という書き方もできます。このほうがCakePHPのコントローラーメソッドを呼び出しているのが分かりやすいので私は好んで使っています。
$html->link() メソッドの第5引数に false を指定すると、第1引数に渡した文字列をエスケープしないという意味になります。ここが肝です。第1引数には$html->image() の戻り値である<img> タグを渡していますので、そのままコードとして解釈してほしいわけです。
ちなみに第3引数は class などの属性を指定するオプションです。第4引数に文字列を渡すとクリック時に確認ダイアログを表示するようになります。便利。

ついでに、フォームの送信ボタンを画像にする場合の書式もメモしておきます。

<?php
echo $form->submit("path/to/image",array("div"=>false));
?>

path/to/image の注意点は、画像リンクの場合と同様です。
2番目の引数は、送信ボタンを <div> タグで囲まないために指定しています。
この引数を指定しないと、<div class=”submit”> というタグが勝手に追加されますので注意してください。

This entry was posted in Webプログラミング and tagged . Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>