Symfony中找不到PHP模板

4

我对Symfony不熟悉,想要使用PHP模板引擎。以下是我按照步骤使其工作的方法。

1. 在config.yml中启用PHP模板引擎

templating:
    engines: ['twig', 'php']

2.在routing.yml中定义了我的控制器路径和默认设置

hello:
    path:      /hello/{name}
    defaults:  { _controller: AppBundle:Hello:index, name:World }

3.创建了HelloController.php文件

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class HelloController extends Controller
{
    public function indexAction($name)
    {
        return $this->render('hello/name.html.php', array(
            'name'=>$name
        ));
    }
}

4.创建了一个视图 \app\Resources\views\Hello\name.html.php

<!-- app/Resources/views/Hello/name.html.php -->
Hello <?php echo $name ?>!

但是当我尝试访问http://127.0.0.1:8000/hello时,它显示了以下错误:

模板“hello/name.html.php”不存在。

500 内部服务器错误 - 无效参数异常

我将模板文件夹名称从“Hello”改为“hello”,但仍然出现相同的错误。也尝试按照以下方式呈现模板。
return $this->render(
    'AppBundle:Hello:index.html.php',
    array('name' => $name)
);

但是没有运气,我一定是错过了什么。请有人指导我正确的方向吗?

注意: hello/name.html.twig 没有任何错误地加载。

谢谢!


这个页面说你需要使用注释: /**
  • @Template(engine="php") */ 你试过使用它了吗?
- Grzegorz
文件夹名称应该是 hello,在更改后清除缓存。 - malcolm
1个回答

3

如果你的模板在app/Resources/views/Hello/文件夹中,你应该使用这个符号:

$response = $this->render(':Hello:name.html.php');

如果您将它移动到src/AppBundle/Resources/views/Hello文件夹中,那么请使用:
$response = $this->render('AppBundle:Hello:name.html.php');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接