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