Puncte:2

Drupal JSON:API - preluarea nodurilor etichetate de mai mulți termeni

drapel cn

Să presupunem că am un tip de conținut de articole și un câmp de referință field_tags (cu mai multe valori care fac referire la un vocabular „etichetă”)

Pentru a prelua articole care fac referire, de exemplu, „etichetă1” sau „etichetă2”, fac acest lucru:

jsonapi/node/articol?
&filtru[etichete][condiție][cale]=field_tags.id
&filter[tags][condition][operator]=IN
&filtru[etichete][condiție][valoare][]=id-of-tag1
&filtru[etichete][condiție][valoare][]=id-of-tag2

Asta îmi oferă toate articolele care au fie tag1, fie tag2.

Cu toate acestea, Cum pot obține toate articolele care au ambele tag1 și tag2?

Puncte:0
drapel pw

Am încercat după cum urmează

/jsonapi/node/article?filter[field_tags.meta.drupal_internal__target_id]=5&filter[field_tags.meta.drupal_internal__target_id]=6

introduceți descrierea imaginii aici

puteți vedea în captura de ecran doar 1 nod filtrat care are atât 5 cât și 6 termeni de identificare.

Hubert avatar
drapel cn
Multumesc pentru raspuns! Când încerc asta, returnează doar nodurile care au ultima valoare din filtru. Deci, în exemplul dvs. cred că acest lucru ar returna numai noduri care au termenul id de 6. În testul dvs., ați avut noduri care aveau doar termenul id 6? Cred că vor fi returnați cu această interogare.
khurrami avatar
drapel pw
Da, ai dreptate când am adăugat nodul numai cu termenul id 6 care este, de asemenea, filtrat.
Puncte:0
drapel cn

Puteți utiliza gruparea de condiții și aveți ca mai jos:

?filtru[grup de etichete][grup][conjuncție]=ȘI

&filtru[tagA-filter][condiție][cale]=field.tags.id
&filtru[tagA-filter][condiție][valoare]=id-of-tag1
&filter[tagA-filter][condition][memberOf]=grup de etichete

&filtru[tagB-filter][condiție][cale]=field.tags.id
&filtru[tagB-filter][condiție][valoare]=id-of-tag2
&filter[tagB-filter][condition][memberOf]=grup de etichete

Nu am încercat asta, dar cred că poți folosi chiar și un cod ca acesta:

?filtru[tagA-filter][condiție][cale]=field.tags.id
&filtru[tagA-filter][condiție][valoare]=id-of-tag1
&filtru[tagB-filter][condiție][cale]=field.tags.id
&filtru[tagB-filter][condiție][valoare]=id-of-tag2

observați doar că în acest caz sunt folosite două chei diferite pentru condiții

Hubert avatar
drapel cn
Din păcate, asta nu pare să funcționeze. Cand incerc nu imi da niciun rezultat.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.