Проверьте значение переменной усы в помощнике

У меня есть JSON с ценой и названием валюты, например:

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

Также я использую Mustache.php для их рендеринга. {{price}} {{currency}} в качестве шаблона и получите: 123 руб. 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}}". И я не могу использовать, если построить. Как я могу преобразовать {{currency}} в значение или превратить его для использования в уравнениях?

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;
    }
});
Другие вопросы по тегам