Agrupando filtros para AND y OR

Curso: JSON:API

En el anterior video vimos como podíamos filtrar por los campos, el problema que nos encontramos fue que siempre era AND y si filtrábamos por titulo y dificultad no aparecerá nada, a si que vamos a cambiarlo a un OR para que sí que aparezcan resultados.

Comenzaremos con el siguiente filtro:

filter[dificultad-filter][condition][path]=field_difficulty
filter[dificultad-filter][condition][operator]==
filter[dificultad-filter][condition][value]=easy
filter[title-filter][condition][path]=title
filter[title-filter][condition][operator]=CONTAINS
filter[title-filter][condition][value]=profundo

En este caso se esta haciendo un filtro con AND y para cambiarlo a un OR tenemos que añadir lo siguiente:

filter[or-group][group][conjunction]=OR

También estamos usando “filter” y el primero valor del array es el valor que usaremos para agrupar, podemos poner el valor que queramos, en este ejemplo “or-group”. Luego ya “group” y “conjunction” y como valor podemos poner AND u OR.

Una vez que tenemos el grupo definido tenemos que añadir los filtros al grupo “or-group” y se hace utilizando la clave “memeberOf” en el array de los filtros:

filter[title-filter][condition][memberOf]=or-group
filter[dificultad-filter][condition][memberOf]=or-group