요소 API, 관계 필드가 ': empty :'인 쿼리 항목과 지정된 항목 ID가있는 동일한 관계 필드

Nov 17 2020

요소 API, 쿼리 항목 경우 관계 필드 '빈' 지정된 항목 ID와 같은 관계 필드.

두 개의 별도 쿼리를 수행하고 개체를 병합하지 않고는이를 수행하는 방법을 알아낼 수없는 것 같습니다. 그러나 나는 Element API 내에서 이것을 수행하는 방법을 보지 못했습니다.

이 다른 질문에 대한 대답은 접근처럼 보입니다. 옵션 1 또는 옵션 2? 이것이 드문 문서로 나에게 모두 이질적으로 보이기 때문에 확실하지 않으며 내 문제와 관련이 없습니다. 매트릭스 블록 유형을 기반으로 항목을 쿼리하려면 어떻게해야합니까?

relatedTo와 함께 ': empty :'를 사용할 수 없으므로 여기에 갇혀 있습니다.

return [
    'criteria' => [
        'section' => 'mySection',
        /* this is the myRelatedField entries field relating to other Section Entry ID */
        'relatedTo' => (['targetElement' => $otherSectionEntryId]), /* unable to use :empty: with the relatedTo, incorporating myRelatedField :empty: below will return zero results */ /* cannot use this below */ 'myRelatedField' => ':empty:' ], 'transformer' => function(Entry $entry) {
        return [
            'title' => $entry->title
        ];
    }
];

추가 테스트로 업데이트하십시오. : empty :와 간단한 관계를 사용하기 위해 아래에 사용 된 다양한 테스트. 배열에서 사용할 때 ': empty :'가 무시되는 것처럼 보입니다.

// results returned where relationship field is empty
'relatedDrinks' => ':empty:'

// no results returned where relationship field is empty
'relatedDrinks' => [':empty:']

// results related to drink ID returned
'relatedDrinks' => [$myDrinkId]

// results returned for drink ID, no results returned with empty
'relatedDrinks' => [':empty:', $myDrinkId]

답변

1 Bransin Dec 15 2020 at 02:31

Craft는 다음 릴리스에이 기능을 포함합니다. https://github.com/craftcms/cms/issues/7256#issuecomment-744644568