检查helper中的mustache变量的值

时间:2013-03-12 11:09:42

标签: mustache mustache.php

我有价格和货币名称的JSON,如下所示:

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

另外,我使用Mustache.php来渲染它们。     {{price}} {{currency}} 作为模板并得到:     123 RUR     456美元     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}}转换为value,或将其预先渲染以用于方程式?

1 个答案:

答案 0 :(得分:1)

假设你正在使用Mustache.php v2.1,你可以使用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;
    }
});