【问题标题】:PHP templates not found in symfony在 symfony 中找不到 PHP 模板
【发布时间】:2015-09-23 11:18:43
【问题描述】:

我是 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 内部服务器错误 - InvalidArgumentException

我将模板文件夹名称从“Hello”更改为“hello”,但仍然出现同样的错误。也尝试过像这样渲染模板

return $this->render(
    'AppBundle:Hello:index.html.php',
    array('name' => $name)
);

但不走运,我一定是在这里遗漏了一些东西。有人可以指导我正确的方向吗?

注意: hello/name.html.twig 正在加载,没有任何错误

谢谢!

【问题讨论】:

标签: php symfony templates


【解决方案1】:

如果您的模板位于 app/Resources/views/Hello/ 文件夹中,则应使用此表示法:

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

如果您要将其移动到 src/AppBundle/Resources/views/Hello 文件夹,请使用

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 2019-04-11
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多