1

私は次のように価格と通貨名でJSONを作成しました:

[{"price": 123, "currency": "RUR"},
{"price": 456, "currency": "USD"},
{"price": 789, "currency": "EUR"}]

また、Mustache.phpを使用してレンダリングします。{{price}} {{currency}}をテンプレートとして取得:123 RUR 456 USD 789 EUR

ただし、「RUR」、「USD」、「EUR」を「ロシアルーブル」、「米ドル」、「ユーロ」に置き換えて取得したい

123 Russian rubles
456 US dollars
789 Euro

ヘルパーが使えると思います

$mustache->addHelper('_curstyle', function($text) {
if ($text == "RUR") {return ("Russian rubles")};
if ($text == "USD") {return ("US dollars")};
if ($text == "EUR") {return ("Euro")};
});

ただし、$textは"{{currency}}"と同じです。そして、if構文は使用できません。{{currency}}を値に変換したり、方程式で使用するために事前にレンダリングしたりするにはどうすればよいですか?

4

1 に答える 1

1

Mustache.php v2.1を使用していると仮定すると、元のブロック本体をレンダリングするために、ヘルパーにオプションの2番目の引数として渡されたLambdaHelperを使用できます。

$mustache->addHelper('_curstyle', function($text, $mustache) {
    switch($mustache->render($text)) {
        case 'RUR':
            return 'Russian rubles';
        case 'USD':
            return 'US dollars';
        case 'EUR':
            return 'Euro';
        default:
            return $text;
    }
});
于 2013-03-12T20:51:16.223 に答える