0

私は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) ?>!

そして私はこのURLでページを実行しますhttp:// localhost:8080 / web / app_dev.php / hello / Peter

これは私のコントローラーです:

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/を使用していることに注意してください。これは問題に関連しているのでしょうか?ベースモデルは::?どうすればこれを修正できますか?

4

1 に答える 1

4

ドキュメントの「TwigforTemplatesの代わりにPHPを使用する方法」の記事を見ると、PHPをテンプレートエンジンとして登録する必要があることがわかります。

構成フォーマットとしてYamlを使用すると仮定します。

# app/config/config.yml
framework:
    # ...
    templating:    { engines: ['twig', 'php'] }
于 2013-03-03T19:13:43.573 に答える