代码之家  ›  专栏  ›  技术社区  ›  Homunculus Reticulli

使用Silex的app.url_generator.generate将路由参数传递给Twig模板

  •  0
  • Homunculus Reticulli  · 技术社区  · 11 年前

    我正在使用Silex创建一个快速网站。我试图在动态页面中将变量从路由传递到视图。

    这是我的控制器代码:

    $app->get('/clients/view/{refnum}', function (Silex\Application $app, Request $request, $refnum) {
        return $app['twig']->render('client.twig', array('flag'=>0, 'refnum' => $refnum));
    })->bind('client_view');
    

    这是我的小树枝代码:

    {% extends 'layout.html.twig' %}
    
    {% block pagecontent %}
    
    <div class="container-fluid">
        <div class="row">
    <h1>Hello, {{ refnum|default('Not Found!')|capitalize }}!</h1>
        </div>
    </div>
    
    {% endblock %}
    

    当我直接键入URL时 http://foobar/clients/view/123 在浏览器中,它可以工作。

    然而,我正在尝试在页面中动态创建链接。

    这是一个HTML片段,显示了我正在做的事情:

    <td><a href="{{ app.url_generator.generate('client_view', {'refnum': {{refnum}}  } ) }}">John Smith</a></td>
    

    我收到Twig异常消息:

    ExpressionParser.php第281行中的Twig_Error_Syntax:哈希键必须是 带引号的字符串、数字、名称或表达式 括号(中值“{”的意外标记“标点符号” 第47行的“clients.home.tig”

    我该怎么解决?

    1 回复  |  直到 11 年前
        1
  •  1
  •   vitalik_74    11 年前

    试试看:

    <td><a href="{{ app.url_generator.generate('client_view', {'refnum': refnum  } ) }}">John Smith</a></td>
    
    推荐文章