Ich mache eine einfache Galerie mit OctoberCMS, basierend auf Laravel und Twig.Wie Datensätze nach Kategorie in PHP Laravel Twig filtern?
Wie kann ich Datensätze nach Kategorien filtern?
Hier ist, wie ich es jetzt tue, aber ich glaube nicht, das ist eine gute Lösung:
ich den HTML-Filter, aber die vollständige Aufzeichnungen noch existiert für alle Elemente außerhalb der Kategorie, verursacht zusätzliche Paginierung und leere Seiten.
Datenbank
A Table 'Galerie' hält Liste der Kategorienamen.
Eine Tabelle 'Bilder' enthält die Bildnamen und ihre markierten Kategorien.
Bildliste
Die URL-Parameter sind/gallery /: Kategorie /:? Page?
Wenn Sie eine URL wie/gallery/nature/1 aufrufen, werden Bilder anhand einer for-Schleife nach Kategorien gefiltert.
<!-- Gallery Category Record Variable -->
{% set category = record.category %}
<!-- Image List -->
{% for record in records %}
<!-- If Image Category Tag matches Gallery Category Name -->
{% if record.category_tag == category %}
<img src="/{{ record.name }}.jpg">
{% endif %}
{% endfor %}
Aufzeichnungen
Ergebnisse für 'records' und 'record'.
Die for-Schleife zeigt den Datensatz 'gallery → category' in den 'images → category_tag' Datensätzen an.
Die Seitennummerierung zeigt alle 'images → name' Datensätze.
{% for record in records %} = (All in 'images')
{{ records }} = {<ul><li>...<a href="gallery/nature?page=2">2</a>} (All in 'images')
{{ record }} = {"category":"nature","id":7} (Current category in 'gallery')
Lösung?
Gibt es eine Möglichkeit, die 'Datensätze' nach Kategorie zu filtern, bevor die HTML-Liste generiert wird?
Nicht sicher RainLab Blog Plugin inspiriert, wenn ich aber falsch verstanden, ist es nicht einfacher Datensätze abzurufen, die die Kriterien erfüllt, bevor es vorbei die Aussicht? wie 'Gallery :: wo ('category_id', $ catId) -> get()'. Natürlich müssen Sie zuerst die Kategorie-ID mit dem Namen aus den Parametern –
@ChristopherFrancisco holen. Durch OctoberCMS ziehen Sie die Aufnahmeliste oder Datensatzdetails und legen dann die Modellklasse und die Anzeigespalte fest. Von dort können Sie die Twig-Syntax verwenden, um die Datensätze zu verwenden. Ich bin neu und benutze Laravel außerhalb von Twig. –
Mein Fehler, der Link für OctoberCMS wurde auf die Paginierungsseite umgeleitet, also nahm ich an, dass es nur eine Seitenumbruchkomponente war (obwohl der Name CMS sagte, alberne mich hahaha) –