Почему переменная не существует в ветке Symfony?

Я пытаюсь напечатать все категории в моей ветке следующим образом:

 <div class="col-md-3">
<p class="lead">Categories</p>
<div class="list-group">
{% for category in categories %}
<a href="#" class="list-group-item">{{ category.name }}</a>
{% endfor %}
</div>
</div>

Но это говорит мне, что переменных категорий не существует.

Структура ветки:

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

{% block body %}
<!-- Page Content -->
<div class="container">

<div class="row">

<div class="col-md-3">
<p class="lead">Categories</p>
<div class="list-group">
{% for category in categories %}
<a href="#" class="list-group-item">{{ render(controller(
'AppBundle:Category:listCategories'
)) }}</a>
{% endfor %}
</div>
</div>

<div class="col-md-9">

<div class="row carousel-holder">

<div class="col-md-12">
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<div class="item active">
<img class="slide-image" src="https://files.illinoispolicy.org/wp-content/uploads/2016/09/Garbage-Politicians-Jesse-White-800x300.png" alt="">
</div>
<div class="item">
<img class="slide-image" src="https://files.illinoispolicy.org/wp-content/uploads/2016/07/garbage-politicians-michael-madigan-800x300.png" alt="">
</div>
<div class="item">
<img class="slide-image" src="https://files.illinoispolicy.org/wp-content/uploads/2015/03/lion-meat-act-2-800x300.jpg" alt="">
</div>
</div>
<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
<br>
</div>

</div>

<div class="row">

<div class="col-sm-4 col-lg-4 col-md-4">
<div class="thumbnail">
<img src="http://placehold.it/320x150" alt="">
<div class="caption">
<h4 class="pull-right">$24.99</h4>
<h4><a href="#">First Product</a>
</h4>
<p>See more snippets like this online store item at <a target="_blank" href="http://www.bootsnipp.com">Bootsnipp - http://bootsnipp.com</a>.</p>
</div>
<div class="ratings">
<p class="pull-right">15 reviews</p>
<p>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
</p>
</div>
</div>
</div>

<div class="col-sm-4 col-lg-4 col-md-4">
<div class="thumbnail">
<img src="http://placehold.it/320x150" alt="">
<div class="caption">
<h4 class="pull-right">$64.99</h4>
<h4><a href="#">Second Product</a>
</h4>
<p>This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
<div class="ratings">
<p class="pull-right">12 reviews</p>
<p>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star-empty"></span>
</p>
</div>
</div>
</div>

<div class="col-sm-4 col-lg-4 col-md-4">
<div class="thumbnail">
<img src="http://placehold.it/320x150" alt="">
<div class="caption">
<h4 class="pull-right">$74.99</h4>
<h4><a href="#">Third Product</a>
</h4>
<p>This is a short description. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
<div class="ratings">
<p class="pull-right">31 reviews</p>
<p>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star"></span>
<span class="glyphicon glyphicon-star-empty"></span>
</p>
</div>
</div>
</div>
</div>

</div>

</div>

</div>
{% endblock %}

Когда вы пытаетесь сделать это в другом шаблоне, он работает, но я хочу сделать это в ветке домашней страницы

Вот мой контроллер:

public function listCategoriesAction()
{
$em = $this->getDoctrine()->getManager();
$categoryRepository = $em->getRepository('AppBundle:Category');
$categories = $categoryRepository->findAll();

return $this->render('homepage/homepage.html.twig', array(
'categories' => $categories->getResult()
));
}

0

Решение

Если вы хотите визуализировать контент в этом варианте:

<pre><code>
{% for category in categories %}
{{ category.name }}
{% endfor %}
</code></pre>

Вы должны сгенерировать эти данные в контроллере и вернуть ответ:



$em = $this->getDoctrine()->getManager();
$categoryRepository = $em->getRepository('YouBundle:Category');
$category = $categoryRepository->findAll();

return $this->render(
'MainBundle:Admin/page:order.html.twig',
[
'categories' => $category->getResult(),
] );

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

Надеюсь, это поможет мачте.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector