drip5880 2016-07-15 12:57
浏览 6
已采纳

使用php为渲染把手创建帮助器

I have a big problem and I don't understand how to solve this. So I have a class for helper :

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;
..............
     }
}

Now in my template I do :

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

The problem is that the template doesn't show the value of data.oUser.number whitch is 4 but show the code data.oUser.number whitout interprete them. The helper works fine, because if I do :

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

This works fine. Can you help me please ? Thx in advance and sorry for my english

  • 写回答

1条回答 默认 最新

  • dps69208 2016-07-15 13:13
    关注

    I found the error, need to do a supplimentaire render after call the helper

    return ($context->get($parsed_args[0]) == $context->get($parsed_args[2])) ? $template->render($context) : false;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c