Используя возврат контроллера Symfony2 в шаблоне Twig

0

В Symfony2 Как получить переменные контроллера или вернуться в файл Twig...? т.е. у меня есть функция, возвращающая массив результатов, и я хочу отобразить их в файле twig....?

Контроллер Php:

<?php

namespace TalkTalk\NewsInfrastructure\Sitemap\Factory;

use TalkTalk\NewsInfrastructure\Article\Factory\DbArticleReadRepository;
use TalkTalk\NewsInfrastructure\DatabaseRepository;

Class SitemapFactory extends DatabaseRepository{

    /**
     * @var string
     */
    private $baseUrl = 'news/';

    /**
     * @var string
     */
    private $feedsSlug;

    /**
     * @var string
     */
    private $articleSlug;

    /**
     * @var string
     */
    private $siteMap;

    /**
     * @array URLforSitemap[]
     */
    private $urls = array();

    /**
     * @return mixed
     */
    public function getURLs()
    {
         $this->urls = $this->db->createQueryBuilder()
        ->select('faf.article_id', 'faf.feed_id')
        ->addSelect('f.slug AS feedSlug')
        ->addSelect('a.slug AS articleSlug')
        ->addSelect("CONCAT('news/' , f.slug, '/' , a.slug) AS url")
        ->from('article_feeds', 'faf')
        ->leftJoin('faf', 'articles', 'a', 'faf.article_id = a.id')
        ->leftJoin('faf', 'feeds', 'f', 'faf.feed_id = f.id');

         return $this->urls->execute()->fetch(\PDO::FETCH_OBJ);
    }

    public function setSiteMap()
    {

        $this->siteMap = '<?xml version="1.0" encoding="UTF-8"?>';
        $this->siteMap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

        foreach($this->urls as $url){

            $this->siteMap .= '<url>';
            $this->siteMap .= '<loc>'.$url.'</loc>';
            $this->siteMap .= '<lastmod>2014-11-26</lastmod>';
            $this->siteMap .= '<changefreq>daily</changefreq>';
            $this->siteMap .= '<priority>0.5</priority>';
            $this->siteMap .= '<url>';

        }

        echo $this->siteMap .= '</urlset>';

    }

    public function getSiteMap()
    {
        return $this->siteMap;
    }
}

Twig File (SoFar):

{# src/TalkTalk/NewsInfrastructure/Sitemap/Views/sitemap.twig #}
<! DOCTYPE html>

<html>
<head>
    {% block head %}
    <title>{% block title %}Sitemao{% endblock %} </title>
    {% endblock %}
</head>

<body>

    <h1>{{ Sitemap }}</h1>

    <ul>
        {% foreach test as url %}
            <li>{{  }}</li>


    </ul>


</body>
</html>

Я теперь могу использовать для циклов в twig между функциями brackiets {%%} и отображать результат между этими brackiets {{}}, но я как могу привести результаты моего контроллера в файл twig...?

  • 0
    Первый файл на самом деле не Контроллер ...
  • 0
    ну, это класс Factory ... с методами set / get, так как я могу передать эти результаты в шаблон ветки
Показать ещё 2 комментария
Теги:
twig

1 ответ

0

Вероятно, вам лучше всего прочитать руководство для Symfony2. Эта часть охватывает взгляды и способы их использования, которые должны помочь вам приступить к работе.

  • 0
    Поэтому, если я сделаю это `` public function setTwig () {$ this-> render ('../ View / sitemap.twig', array ($ this-> urls)); }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню