简体   繁体   English

为什么在树枝Symfony中不存在变量?

[英]Why variable does not exist in twig Symfony?

I am trying to print all categories in my twig in this way: 我正在尝试以这种方式在树枝上打印所有类别:

 <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>

But it tells me that variable categories does not exist. 但这告诉我变量类别不存在。

Twig Structure: 树枝结构:

{% 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 %}

When y try to do for in other template, it's working, but i want to do it in the homepage twig 当您尝试在其他模板中执行此操作时,它正在工作,但是我想在首页树枝中执行此操作

Here is my controller: 这是我的控制器:

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()
       ));
    }

If you want render content in this variant: 如果要渲染此变体中的内容:

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

You must generate this data in controller and return response: 您必须在控制器中生成此数据并返回响应:



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

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

Hear links in my test progect: 听到我的测试项目中的链接:
controller - TIK 控制器-TIK
template - TIK 模板-TIK

Hope it's mast help. 希望它能帮助您。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM