Я выполняю все шаги, связанные с установкой Symfony, и я пытаюсь привести примеры книги Symfony (предоставленной на веб-сайте Symfony). В настоящее время я нахожусь в главе «Контроллеры» (5), и я пробую следующий код:
namespace MyBundle\FrontBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; class HelloController extends Controller { public function indexAction($name, Request $request) { return $this->redirect($this->generateUrl('front_buy'), 301); } public function buyAction(Request $request) { return $this->render( 'Hello/buy.html.twig', array( 'name' => 'Nikos' ) ); } }
но я получаю следующую ошибку:
INFO - Matched route "front_buy" (parameters: "_controller": "MyBundle\FrontBundle\Controller\HelloController::buyAction", "_route": "front_buy") CRITICAL - Uncaught PHP Exception InvalidArgumentException: "Unable to find template "Hello/buy.html.twig"." at /var/www/projects/symfony/vendor/symfony/symfony/src/Symfony/Bridge/Twig/TwigEngine.php line 128
Контекст: {"exception": "Object (InvalidArgumentException)"}
Я знаю, это не что-то необычное, но я не знаю, как исправить эту проблему.
Мой файл просмотра находится по следующему пути: ./src/MyBundle/FrontBundle/Resources/views/Hello/buy.html.twig
.
Вам нужно отобразить его со следующим синтаксисом:
$this->render('AcmeBlogBundle:Blog:index.html.twig')
или с этим синтаксисом
$this->render('@BlogBundle/Blog/index.html.twig')
Пример:
$this->render('@FrontBundle/Hello/buy.html.twig)
Более подробную информацию можно найти в документации , также ссылаясь на примеры лучших методов Symfonys, которые должны храниться в app/Ressources/views