Symfony & TWIG: маршрут для каталога шаблонов не работает нормально - PullRequest
0 голосов
/ 27 октября 2018

Я новичок в Symfony, и я создал много шаблонов веток HTML и эту функцию для маршрутизации в моем контроллере:

      /**
      * @Route("/{path}")
      */
      public function renderTemplate($path) {
        return $this->render('/'.$path.'/index.html.twig');
      }
      ?>

Функция renderTemplate () прекрасно работает для всех папок первого уровня, но недля файлов подкаталогов, потому что кажется, что он прерывается после "/".Я не хочу писать десятки новых функций Route.

Как реализовать все сайты, включая подкаталоги, разделенные "/"?

Что такое безопасная практика и простое решение?

Структура моей папки с шаблонами веток такова: Папка шаблонов

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Я только что нашел ответ здесь в документации Symfony .

Очевидно, вы можете разрешить "/" в вашей переменной следующим образом:

use Symfony\Component\Routing\Annotation\Route;

class DefaultController
{
    /**
     * @Route("/share/{token}", name="share", requirements={"token"=".+"})
     */
    public function share($token)
    {
        // ...
    }
}

Я назвал все свои шаблоны веток «index.html.twig» и поместил их в соответствующий путь к файлу в папке с шаблонами, и теперь моя функция работает очень плавно для каждого сайта.

Возможно, мне придется изменить егопозже для выполнения индивидуальных запросов, но это было удобное краткосрочное решение, позволяющее видеть все мои страницы с помощью простых и привлекательных ссылок и только одной функции маршрутизации в моем контроллере.

0 голосов
/ 27 октября 2018

@Route - это ваш URL, а не путь к файлу.
Путь по умолчанию в Symfony (3.4) - app/Ressources/view/

Таким образом, если вы хотите достичь app/Ressources/view/default/index.html.twig, вы сделаете это:

return $this->render('default/index.html.twig');
...