如何将变量发送到树枝

how to send variable to twig

我前几天问过这个问题,可能我没有很好地解释自己。

我正在尝试使用 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 使用了相同的代码,但是对于这条 / 我有一个错误:

Twig_Error_Runtime in index.html.twig line 7: Variable "pg_cnt" does not exist.

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

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

您的代码应该可以正常工作,或许可以尝试将其切换为:

<?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();