Переменная Symfony / Twig "replaceString" не существует - PullRequest
0 голосов
/ 30 июня 2018

Я не понимаю, почему он не может найти мою переменную тогда, что хорошо определено.

Моя ошибка:

Переменная "replaceString" не существует.

in templates/scraping/index.html.twig (line 5)

{% extends 'base.html.twig' %}
{% block bodyIndex %}
    <ul class="list-group list-group-flush">        
         {% for rS in replaceString %}            
             <li class="list-group-item">{{ rS }}</li>        
         {% endfor %}
   </ul>
{% endblock %}

Контроллер:

class ScrapingController extends Controller
{
    /**
     * @Route("/scraping", name="scraping")
     */
    public function getMovie()
    {

        $client = new Client();

        $crawler = $client->request('GET', 'http://www.torrents9.cc/torrents_films.html,trie-seeds-d');

        // On filtre sur les éléments pour les récuperer
        $crawler->filter('tbody > tr > td > a')->each(function ($node) {

            // On remplace les strings en trop par une chaine vide avec str_replace
            $emptyString = array("FRENCH", "TS", "DVDRIP", "WEBRIP", "TRUEFRENCH", "TRUE", "PROPER");
            $replaceString = str_replace($emptyString, "",$node->text()."\n");

            return $this->render('scraping/index.html.twig', array(
                'replaceString' => $replaceString
            ));
        });

        return $this->render('scraping/index.html.twig', [
            'crawlers' => $crawler
        ]);

    }

}

Twig:

{% extends 'base.html.twig' %}

{% block bodyIndex %}
    <ul class="list-group list-group-flush">
        {% for rS in replaceString %}
            <li class="list-group-item">{{ rS }}</li>
        {% endfor %}
    </ul>
{% endblock %}

Я бы хотел опубликовать в ветке список фильмов, которые я извлекаю с другого сайта

Спасибо.

1 Ответ

0 голосов
/ 02 июля 2018

измените свой контроллер, чтобы он выглядел следующим образом.

class ScrapingController extends Controller
{
    /**
     * @Route("/scraping", name="scraping")
     */
    public function getMovie()
    {

        $client = new Client();
        $replaceString = array();

        $crawler = $client->request('GET', 'http://www.torrents9.cc/torrents_films.html,trie-seeds-d');

        // On filtre sur les éléments pour les récuperer
        $crawler->filter('tbody > tr > td > a')->each(function ($node) {

            // On remplace les strings en trop par une chaine vide avec str_replace
            $emptyString = array("FRENCH", "TS", "DVDRIP", "WEBRIP", "TRUEFRENCH", "TRUE", "PROPER");
            $replaceString[] = str_replace($emptyString, "",$node->text()."\n");

        });

        return $this->render('scraping/index.html.twig', [
            'crawlers' => $crawler,
            'replaceString' => $replaceString
        ]);

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...