ふとレビューしてて気づきました。



んん!?昔は{!! !!}で囲まないといけなかったはず!

疑問に思ったのははタグをエスケープするのに、Formファサードは無視するんだなーということ。

で、検証してみました。

{!! Form::text('test', '') !!}

{!! '<b>text</b>' !!}

↓ 結果はこうなる。なぜだ。。。

<input name="test" type="text" value="">
<input name="test" type="text" value="">
&lt;b&gt;text&lt;/b&gt;
<b>text</b>

もしかしてvalue値をエスケープするようになった?なんて妄想してみたが違った。

{!! Form::text('test', '<b>test</b>') !!}

<input name="test" type="text" value="&lt;b&gt;test&lt;/b&gt;">
<input name="test" type="text" value="&lt;b&gt;test&lt;/b&gt;">

で、最終的にありがたい記事が!

https://www.msng.info/archives/2016/01/laravel-blade-braces-dont-always-escape.php

Laravel 5.1 から下記のようになっていたとのこと。

function e($value)
{
    if ($value instanceof Htmlable) {
        return $value->toHtml();
    }
    return htmlentities($value, ENT_QUOTES, 'UTF-8', false);
}

ということで今後Formファサードで囲もうと思います。
{!! !!} の出現頻度が減るのでgrepが捗りますね!)

Updated: