2017-12-13 3 views
0

Sorry für den Titel, ich war nicht inspiriert. Ich sende (mit Slim 3) an Twig ein Array mit 'Artikel' und 'Kategorien'. In 'article' habe ich eine article.cat.id und in 'categories' habe ich eine 'id'. Ich möchte nur den Kategorienamen nach article.cat.id erhalten. Für den Moment mache ich eine doppelte Schleife, aber ich nehme an, das ist ein schlechter Weg, dies zu tun. Irgendeine Idee, dies besser zu machen? DankKreuz Daten im selben Array mit Zweig

{% for article in articles %} 
    <tr> 
     <td>{{ article.title }}</td> 
     <td> 
      {% for category in categories %} 
       {% if category.id == article.cat_id %} 
        {{ category.name }} 
       {% endif %} 
      {% endfor %} 
     </td> 
     <td>{{ article.author }}</td> 
    </tr> 
{% endfor %} 

Antwort

2

sollten Sie in der Lage sein

{{ categories[article.cat_id].name }} 

zu tun (es sei denn, der Array-Index in die Kategorie id-Attribut unterscheidet)

+1

oder benutzen/schreiben Getter 'article.getCategoryId()'/'article.getCategory()' – DarkBee

+0

Natürlich , der Array-Index ist anders :) – Falco

0

ich die Lösung gefunden. Mein Array muss meine Kategorie-ID als Schlüssel haben. Um das zu tun mit eloquent ist:

Category::all()->keyBy('cat_id'); 

und jetzt kann ich verwenden:

{{ categories[article.cat_id].name }}