2013-03-03 108 views
0

我试图遵循symfony的教程在:Symfony教程是错误的?

http://symfony.com/doc/current/book/page_creation.html#step-1-create-the-route

但在某一点上我已经决定使用PHP替代树枝。

,所以我试图在第3步中使用模板的工作和我的网页告诉我这条线

extend('::base.html.php') ?> Hello escape($name) ?>! 

不知道这是从教程的错误,因为他们通常与树枝选择工作或如果我这样做有问题。 它就像我的网页在尝试扩展它时不会识别php。

这是我试图渲染页面的全码:

<!-- src/Acme/HelloBundle/Resources/views/Hello/index.html.php --> 
<?php $view->extend('::base.html.php') ?> 

Hello <?php echo $view->escape($name) ?>! 

,我在这个网址HTTP运行的页面://本地主机:8080 /网络/ app_dev.php /你好/彼得

这是我的控制器:

class HelloController extends Controller 
{ 
    public function indexAction($name) 
    { 
     // return $this->render(
     // 'AcmeHelloBundle:Hello:index.html.twig', 
     // array('name' => $name) 
     //); 

     // render a PHP template instead 
     return $this->render(
      'AcmeHelloBundle:Hello:index.html.php', 
      array('name' => $name) 
     ); 
    } 
} 

和我的基地:

!-- app/Resources/views/base.html.php --> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title><?php $view['slots']->output('title', 'Welcome!') ?></title> 
     <?php $view['slots']->output('stylesheets') ?> 
     <link rel="shortcut icon" href="<?php echo $view['assets']->getUrl('favicon.ico') ?>" /> 
    </head> 
    <body> 
     <?php $view['slots']->output('_content') ?> 
     <?php $view['slots']->output('javascripts') ?> 
    </body> 
</html> 

请注意,我正在使用/ web /这不在本教程中。可能这与问题有关?因为我告诉基础模型在::?我怎样才能解决这个问题?

+2

你添加PHP作为模板引擎? – 2013-03-03 19:05:02

+0

除了hellocontroller代码外,它并未包含在本教程中。我搜索文件夹的东西改变,但没有发现任何东西 – 2013-03-03 19:06:46

+0

感谢发现它的另一个教程http://symfony.com/doc/2.0/cookbook/templating/PHP.html如果你提交一个答案虐待接受它,这是真正愚蠢的错误......但是当你开始学习一个新的框架时会发生什么:P – 2013-03-03 19:08:56

回答

3

如果您查看文档中的"How to use PHP instead of Twig for Templates"文章,您会发现需要将PHP注册为模板引擎。

假设你使用YAML作为配置格式:

# app/config/config.yml 
framework: 
    # ... 
    templating: { engines: ['twig', 'php'] }