Цикл Twig не зацикливается один раз, а несколько раз - PullRequest
0 голосов
/ 28 марта 2019

Попытка перебрать результаты моего запроса и передать их в веточку, чтобы распечатать их, однако печатает их по очереди.Есть ли лучший способ просмотреть результаты с помощью ветки?

Я пробовал разные комбинации петель веточек, но он повторяется один раз и печатает каждый результат для тега <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

Я хотел бы напечататькаждый результат с 1 <ul> тегом через цикл.Кто-нибудь знаком с веткой, которая может определить проблему и помочь мне с решением?

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

Сначала покажите свой полный контроллер.

В любом случае, лучший и более короткий способ перебрать результаты запроса - создать что-то вроде этого в Twig

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

Где результат - одна строка в результатахмассив извлеченных строк из БД

0 голосов
/ 29 марта 2019

Я думаю, что лучшим способом было бы поместить все ваши значения в массив внутри вашего контроллера.

Я не знаю, как выглядит ваш контроллер, но вам нужен массив, похожий на этот.

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

Это должно сработать.

...