Проверьте значение переменной усы в помощнике
У меня есть 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;
}
});