こんにちは。でんすけ(@notgeek_densuke)です。
fuelPHPを使っていて、JsonデータをViewに渡したいときって、ありますよね。
そんな時にハマったこととか。
スポンサーリンク
fuelPHPでは、Viewに渡す時にエスケープされる
Jsonデータを適当に作って、Viewに渡す PHP側のコードはこんな感じ。
$jsondata_arr = []; $jsondata_arr['@context'] = "http://schema.org/"; $jsondata_arr['@type'] = "JobPosting"; $jsondata_arr['description'] = "内容"; $jsondata = json_encode($data,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); $view->jsondata = $jsondata;
この時のエスケープの話はこちらの記事でもかきました。
で、View側はこんな感じ。
<head>
<script type="application/ld+json">
{{jsondata|raw}}
</script>
</head>
すると、実行結果がこんな感じになります。
<head>
<script type="application/ld+json">
{
"@context",
"http://schema.org/",
"description": "内容"
}
</script>
</head>
めっちゃ"って言われる!
fuelPHPでViewに文字列渡すと「”」がエスケープされるのです。
つらい。
set_safeを使う
そんな時は、Viewのset_safe()をつかうべし。
$view->set_safe('jsondata', $jsondata);
すると
<head>
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "JobPosting",
"description": "内容"
}
</script>
</head>
てな感じです。
細かいTips的な話ですが、地味にハマったので書き残しておきます。
たまには公式のドキュメントもちゃんと見るべきですね。
それではまたー。





コメント
コメントはありません。