Tech Racho エンジニアの「?」を「!」に。
  • 開発

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));

のようにします。

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


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。