树枝循环不是循环一次而是多次循环

时间:2019-03-28 19:51:33

标签: php symfony for-loop twig

试图遍历我的查询结果并将其传递到树枝以打印它们,但是每次都打印它们。有没有更好的方法可以用细枝遍历结果?

我尝试了细枝循环的不同组合,但是它循环了一次,并按<li>标签打印每个结果。

这是我的Twig代码。

<ul>
    {% for status in status %}
            <li>{{ status }}</li>
    {% endfor %}

        {% for invoiceNumber in invoiceNumber %}
            <li>{{ invoiceNumber }}</li>
        {% endfor %}


        {% for createdAt in createdAt %}
            <li>{{ createdAt }}</li>
        {% endfor %}

        {% for amount in amount %}
            <li>{{ amount }}</li>
        {% endfor %}


        {% for sourceCode in sourceCode %}
            <li>{{ sourceCode }}</li>
        {% endfor %}

        {% for fundCode in fundCode %}
            <li>{{ fundCode }}</li>
        {% endfor %}


        {% for keyword in keyword %}
            <li>{{ keyword }}</li>
        {% endfor %}
</ul>

这里是打印内容

   <li>2
   <li>2
   <li>000035772641
   <li>000035772861
   <li>03/26/19
   <li>03/26/19
   <li>20
   <li>80
   <li>G19W2KACTB
   <li>K100
   <li>vvK100

我想要打印的是 每个<ul>标签

   <li>2
   <li>000035772641
   <li>03/26/19
   <li>20
   <li>G19W2KACTB
   <li>vvK100


   <li>2
   <li>000035772861
   <li>03/26/19
   <li>80
   <li>
   <li>K100

Id喜欢通过循环打印带有1个<ul>标签的每个结果。有没有熟悉树枝的人可能会发现问题并为我提供解决方案?

2 个答案:

答案 0 :(得分:2)

首先显示完整的控制器。

无论如何,更好和更短的遍历查询结果的方法是在Twig中创建类似的内容

    {% for result in results %}
        <ul>
            <li>{{ result.invoiceNumber }}</li>
            <li>{{ result.createdAt }}</li>
            <li>{{ result.amount }}</li>
            .......
        </ul>
    {% endfor %}

结果是从数据库中提取的行的结果数组中的单行

答案 1 :(得分:0)

我认为最好的方法是将所有值放入控制器内部的数组中。

我不知道您的控制器是什么样的,但是您将需要一个像这样的数组。

  $results = array(
    array(
      'status' => "something",
      'invoiceNumber' => "123",
      'createdAt' => "2019-03-29",
     'amount' => 2.00,
     'sourceCode' => "<div>blah blah</div>",
     'fundCode' => "Something",
     'keyword' => "Something else"
    ),
    array(
      'status' => "something",
      'invoiceNumber' => "123",
      'createdAt' => "2019-03-29",
     'amount' => 2.00,
     'sourceCode' => "<div>blah blah</div>",
     'fundCode' => "Something",
     'keyword' => "Something else"
    )
    .....
  );

从本质上讲,您可以像这样循环搜索结果:

{% for result in results %}
  <ul>
     <li>{{ result.status }}</li>
     <li>{{ result.invoiceNumber }}</li>
     <li>{{ result.createdAt }}</li>
     <li>{{ result.amount }}</li>
     <li>{{ result.sourceCode }}</li>
     <li>{{ result.fundCode }}</li>
     <li>{{ result.keyword }}</li>
  </ul>
{% endfor %}

应该可以解决问题。