如何将变量发送到树枝

时间:2017-03-15 10:10:24

标签: twig silex

我几天前问过这个问题,也许我不能很好地解释自己。

我正在尝试使用Silex2,因此我将文档中的代码复制到我的第一页。

的index.php

require_once __DIR__.'/../vendor/autoload.php';

$app = require __DIR__.'/../src/app.php';
require __DIR__.'/../config/dev.php';
require __DIR__.'/../src/controllers.php';

$pg_cnt['temp'] = 'Welcome !';
$pg_cnt['name'] = 'tutu';

$app->get('/', function () use ($app, $pg_cnt) {
    return $app['twig']->render('index.html.twig', array(
        'pg_cnt' => $pg_cnt,
    ));
});

$app->get('/home', function () use ($app, $pg_cnt) {
    return $app['twig']->render('index.html.twig', array(
        'pg_cnt' => $pg_cnt,
    ));
});
$app->run();

index.html.twig

{% extends "arche/layout.html.twig" %}

{% block content %}
<br /><br /><br /><br /><br />

{{ global.request }}
    <h1>{{ pg_cnt.temp }}</h1>
    <h1>{{ pg_cnt.name|default('default titi') }}</h1>


<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
{% endblock %}

我对路线//home使用相同的代码,但对于此/,我有一个错误:

  index.html.twig第7行中的

Twig_Error_Runtime:变量“pg_cnt”确实如此   不存在。

对于另一个/home,一切正常。

我不明白这里发生了什么? 我正在使用silex-skeleton

1 个答案:

答案 0 :(得分:0)

您的代码应该按原样运行,或者尝试将其切换为:

<?php 
    require_once __DIR__.'/../vendor/autoload.php';

    $app = require __DIR__.'/../src/app.php';
    require __DIR__.'/../config/dev.php';
    require __DIR__.'/../src/controllers.php';

    $pg_cnt['temp'] = 'Welcome !';
    $pg_cnt['name'] = 'tutu';

    $func = function () use ($app, $pg_cnt) {
        return $app['twig']->render('index.html.twig', array(
            'pg_cnt' => $pg_cnt,
        ));
    };

    $app->get('/', $func);
    $app->get('/home', $func);

    $app->run();