Verwendung von Sprigs Rezept „Mehr laden“ nach dem Update

Nov 19 2020

Dies ist eine Fortsetzung einer früheren Frage, die ich (hier) hatte . Ich verwende Sprigs Load More Recipe . Auf meiner Kategorieseite soll die Funktion "Mehr laden" nur Einträge aufrufen, die der aktuellen Kategorieseite entsprechen. In einem kürzlich durchgeführten Update funktioniert die Kategorielösung, die in meiner vorherigen Frage enthalten war, nicht mehr, da sie ein wenig umstrukturiert wurde. Ich kann nicht herausfinden, wie ich das wieder relatedTo(category)zum Laufen bringen kann. Ich habe es momentan so eingerichtet (das {'relatedTo': category}macht nichts):

_category.twig

{{ sprig('_layouts/_blog/_categories/_loadMore', {'limit': 6},{'relatedTo': category}) }}
{{ sprig.script }}

_loadMore.twig

{% set offset = offset ?? 0 %}

{% set entries = craft.entries.section('caseFiles').offset(offset).limit(limit).relatedTo(category).all() %}

{% for entry in entries %}
   ------Entry Content-----
{% endfor %}

{% if entries %}
  {# Increments `offset` by the value of `limit` and swaps itself out on click #}
  <button class="orange-button" sprig s-vars="offset: {{ offset + limit }}" 
    s-target="this" s-swap="outerHTML">
    <p>Load More</p>
  </button>
{% endif %}

Antworten

3 Oli Nov 19 2020 at 16:50

Das Problem ist, dass Sie dies tun, .relatedTo(category)aber die Variable, die Sie übergeben, aufgerufen wird relatedTo, nicht category.

Genau wie bei limit, basierend auf Ihrem Code, sollte es sein .relatedTo(relatedTo). Außerdem sollte es Teil desselben Hashs sein wie Ihr limit.

Sie können jedoch kein Kategorieobjekt an eine Komponente übergeben und müssen idstattdessen dessen ( Dokumente ) übergeben.

Abhängig davon, was categoryin Ihrem Fall ist (und ich denke, es ist ein Objekt), können Sie Folgendes tun:

{{ sprig('_components/load-more', {
    'limit': 6,
    'categoryId': category.id
}) }}

Dann in Ihrer Komponente:

{% set offset = offset ?? 0 %}

{% set query = craft.entries().section('caseFiles').offset(offset).limit(limit) %}

{# Make sure a categoryId is being passed #}
{% if categoryId %}
    {% set query = query.relatedTo(categoryId) %}
{% endif %}

{% set entries = query.all() %}

{% for entry in entries %}
   ------Entry Content-----
{% endfor %}

{% if entries %}
  {# Increments `offset` by the value of `limit` and swaps itself out on click #}
  <button class="orange-button" sprig s-vars="offset: {{ offset + limit }}" 
    s-target="this" s-swap="outerHTML">
    <p>Load More</p>
  </button>
{% endif %}