我几天前问过这个问题,也许我不能很好地解释自己。
我正在尝试使用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
答案 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();