いとこによるフィルタリング

I want to do exactly this: Multi-step & bi-directional relations with
relatedTo (#1640)

一般的な例:書籍チャネル、著者、 publisher
の2つの関係フィールドが書籍、作家、出版社を所有しているとします。出版社のページでは、書籍を出版したすべての著者をリストしたいとします。

ここで私が試したことがあります:

{% set bookIds = craft.entries()
.section('books')
.relatedTo({ targetElement: publisher, field: 'publisher' })
.ids() %}

{% set authors = craft.entries()
.section('authors')
.relatedTo({ sourceElement: bookIds, field: 'books' })
.all() %}

しかし、コードは “Undefined
offset:0″というエラーになります。エラーは、コードの最初のブロックで発生するようです。

さらに、私は、最後から2番目の行のフィールドについては分かりません。「書籍」ではなく「著者」であってはなりませんか?

ベストアンサー

あなたが得ているエラーはCraftのバグです。 (ちょうど次のリリースのためにそれを修正しました。)

この問題を回避するには、 {%set authors ...%}
タグを次のように置き換えます。

{% if bookIds|length %}
    {% set authors = craft.entries()
        .section('authors')
        .relatedTo({ sourceElement: bookIds, field: 'books' })
        .all() %}
{% else %}
    {% set authors = [] %}
{% endif %}

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です