2016-07-15 6 views
0

У меня большая проблема, и я не понимаю, как это решить. Так у меня есть класс для помощника:Создайте помощник для ручек рендеринга, используя php

class IfCondHelper implements HelperInterface 
{ 
public function execute(Template $template, HandlebarsContent $context, $args, $source) 
{ 
    $parsed_args = $template->parseArguments($args); 

    if (count($parsed_args) != 3) { 
     throw new \InvalidArgumentException(
      '"IfCond" helper expects exactly three arguments.' 
     ); 
    } 

    switch ($context->get($parsed_args[1])) { 
     case "==": 
      return ($context->get($parsed_args[0]) == $context->get($parsed_args[2])) ? $source : false; 
      break; 
.............. 
    } 
} 

Теперь в моем шаблоне я делаю:

{{#ifCond 2 '==' 2}} {{data.oUser.number}} {{/ifCond}} 

Проблема заключается в том, что шаблон не показывает значение data.oUser.number 4 является ведьма, но показать код data.oUser.number не интерпретировать их. Помощник работает отлично, потому что, если я это сделаю:

{{#ifCond 2 '==' 2}} <p>Test</p> {{/ifCond}} 

Это прекрасно работает. Не могли бы вы мне помочь ? Thx заранее и извините за мой английский

ответ

0

Я нашел ошибку, нужно сделать supplimentaire визуализацию после вызова хелперного

return ($context->get($parsed_args[0]) == $context->get($parsed_args[2])) ? $template->render($context) : false;