首页 > 解决方案 > 找不到要渲染的模板

问题描述

我知道有类似的问题,但这些错误不适用于我。

所以我试图在我的LuckyController.php文件中呈现一个模板,如下所示:

<?php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class LuckyController extends AbstractController{

    /**
     * 
     *@Route("/lucky/number") 
     */

    public function number(){


        $number = random_int(0,100);

        return $this->render('lucky/number.html.twig',[
            'number' => $number, 
        ]);
    }
}

然后,我有了base.html.twig要渲染的模板:

{# templates/lucky/number.html.twig #}
   <h1> Your lucky number is {{ number }} </h1>

这是我的文件结构的一部分,可能最终相关:

Project
|
--src
   |
   --Controller
         |
         -- LuckyController.php
--templates
   |
   -- number.html.twig

我遇到的问题:

找不到模板“templates/number.html.twig”(查看:~\symfony\Project/templates、~\symfony\Project\vendor\symfony\twig-bridge/Resources/views/Form)。

标签: phpsymfony

解决方案


您应该将 twig 文件放在“templates”的子文件夹中并将其命名为“lucky”,因此 twig 模板的路径应该是:templates/lucky/number.html.twig 而不是直接在模板下

--templates
   |
   -- lucky
       |
       -- number.html.twig

推荐阅读