2015-09-23 53 views
2

我是symfony的新手,我想使用PHP模板引擎。以下是我为了使其工作而遵循的步骤。在config.yml在symfony中找不到PHP模板

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

1.Enabled PHP模板引擎2.Defined在routing.yml中

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

3.Created 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.Created视图\程序\资源\意见\你好\ 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

我改变的模板文件夹名称从“你好”到“你好”,但还是同样的错误。也试图渲染这样的模板

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

但没有运气,我必须在这里丢失的东西。有人能指导我正确的方向吗?

注:你好/ name.html.twig加载没有任何错误

谢谢!

+0

http://symfony.com/doc/current/cookbook/templating/PHP.html 这个页面说,你需要使用注释: /** * @Template(发动机=“PHP “) */ 你试过 用它? – Grzegorz

+0

文件夹名称应为'hello'并在更改后清除缓存。 – malcolm

回答

3

如果你的模板在app /资源/视图/你好/文件夹,你应该使用这个符号:

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

如果你想将其移动到的src /的appbundle /资源/视图/你好文件夹,然后使用

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