こんにちは。でんすけ(@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的な話ですが、地味にハマったので書き残しておきます。
たまには公式のドキュメントもちゃんと見るべきですね。
それではまたー。
コメント
コメントはありません。