mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
Fix advanced filter
This commit is contained in:
@@ -245,6 +245,14 @@ function applyFilter(dbQuery: QueryBuilder, filter: Filter) {
|
||||
dbQuery.whereNot({ [key]: compareValue });
|
||||
}
|
||||
|
||||
if (operator === '_contains') {
|
||||
dbQuery.where(key, 'like', `%${compareValue}%`);
|
||||
}
|
||||
|
||||
if (operator === '_ncontains') {
|
||||
dbQuery.where(key, 'like', `%${compareValue}%`);
|
||||
}
|
||||
|
||||
if (operator === '_in') {
|
||||
let value = compareValue;
|
||||
if (typeof value === 'string') value = value.split(',');
|
||||
|
||||
@@ -4,7 +4,7 @@ export default function filtersToQuery(filters: readonly Filter[]) {
|
||||
const query: Record<string, any> = {};
|
||||
|
||||
filters.forEach((filter) => {
|
||||
query[`filter[${filter.field}][${filter.operator}]`] = filter.value;
|
||||
query[`filter[${filter.field}][_${filter.operator}]`] = filter.value;
|
||||
});
|
||||
|
||||
return query;
|
||||
|
||||
@@ -125,7 +125,8 @@ export default defineComponent({
|
||||
localFilters.value = props.value?.filter((filter) => {
|
||||
return !!fieldsStore.getField(props.collection, filter.field);
|
||||
});
|
||||
}
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
|
||||
const syncWithProp = debounce(() => {
|
||||
|
||||
Reference in New Issue
Block a user