Edited at

cakePHPでHTMLヘルパーでサニタイズを無効にする

More than 1 year has passed since last update.

cakePHPのリンクヘルパーを使う時って


link.php

<?php echo $this->Html->link('新規登録', array('controller' => 'users', 'action' => 'add')); ?>


みたいに書きます。

するとHtmlでは


link.html

<a href="users/add">新規登録</a>


のようになります。

この時、以下のようにリスト要素<li>を<a>の中に入れたいとします。つまり、リスト要素全体をリンクにしたい時。


link.html

<a href="users/add"><li>新規登録</li></a>


cakeで書くと


link.php

<?php echo $this->Html->link('<li>新規登録</li>', array('controller' => 'users', 'action' => 'add')); ?>


としますが、この時、<li>がサニタイズされてしまい、

<li>新規登録</li>

のようにブラウザで表示されてしまいます。

なので次のように書きます。


link.php

<?php echo $this->Html->link('<li>新規登録</li>', array('controller' => 'users', 'action' => 'add'), array('escape' => false)); ?>


すると<li>のサニタイズが解かれ、


link.html

<a href="users/add"><li>新規登録</li></a>


ブラウザの表示でも

新規登録

のようになります。

-結論-

ヘルパーなどのサニタイズを向こうにするには

array('escape' => false)

をオプションに追加するとよい!!