WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート [symfony] foreach内でエスケーピングする項目としない項目が混在

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

app/config/settings.yml内に


all:
.settings:
escaping_strategy: on
escaping_method: ESC_SPECIALCHARS
と書くと出力する変数を全部エスケープしてくれます。漏れが出ないので、お勧めのやり方です。あるデータだけエスケープしたくない時は

<?php echo $sf_data->getRaw('name') ?>
で出来ますが、foreachで配列をまわして同じテーブルの内容を繰り返し出力するような時、エスケープしたい項目と、したくない項目があり困りました。
下のようにして何とか実現しました。

<?php foreach($sf_data->getRaw('sample_cases') as $key=>$sample): ?>
<?php echo $sample_cases[$key]->getComment()//エスケープするデータ ?>
<?php echo $sample->getComment()//エスケープしないデータ ?>
<?php endforeach ?>


3/19日加筆
getRawValueというメソッドがありました。

<?php foreach($sample_cases as $sample): ?>
<?php echo $sample->getComment()//エスケープするデータ ?>
<?php echo $sample->getRawValue()->getComment()//エスケープしないデータ ?>
<?php endforeach ?>
これだけでOKです。こういうメソッドが無い分けないですよね。失礼しました。

5/19日加筆
当たり前ですがgetRawValueを使うとescaping_strategy: offにしたときにエラーが出ます。
$sf_data->getRaw('sample_cases')だと普通に動きます。offにすることは無さそうだけど、なんか気持ち悪いですね。

[symfony 1.1.6]
スポンサーサイト

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。