CakePHP1.3 リンク付き画像の表示方法

リンクのついた画像をHtmlヘルパーで表示する方法がCakePHP1.3から変更になりました。

CakePHP1.2までであればこれは

$html->link($html->image('sample.png'),
        array('action' => 'hoge'), null, null, false);

と書けました。
第5引数のタイトル文字のエスケープ設定にfalseをセットし、imgタグをエスケープせずに、そのまま出力しています。

ですが、
CakePHP1.3からはこのやり方ができなくなってしまいました。
1.2

HtmlHelper#link($title, $url = null, $options = array(), $confirmMessage = false, $escapeTitle = true);

1.3

HtmlHelper#link($title, $url = null, $options = array(), $confirmMessage = false);

と$escapeTitle引数が削除されてしまいました。

エスケープができないんじゃ、画像表示されないじゃん!!と早合点したあなた、安心してください。
CakeBookによれば$options[‘escape’]を使用してくださいとのことです。
なるほど。

というわけで、前置きが長くなりましたがCakePHP1.3からはリンク付きの画像を出力するには

$html->link($html->image('sample.png'), $url, array('escape' => false));

のようにします。

すこし、スマートになった気がしていいですね。

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

渡辺 正毅

1984年生。サンフランシスコ育ち。大学から憧れの日本に留学し、そのまま移住。2006年慶應大学SFC卒。2007年BPS株式会社設立。いい国ですよね。もっとよくしたい。好きになってくれる人を増やしたい。

渡辺 正毅の書いた記事

お知らせ
社名変更のお知らせ

2019年10月01日

夏のTechRachoフェア2019

週刊Railsウォッチ

インフラ

ActiveSupport探訪シリーズ