Добавление условий в выборку записей в секции
Здравствуйте, подскажите пожалуйста как можно добавить условия в выборку записей в секции, например:
... where isActive = 0 ...
То есть чтобы именно загружались те записи которые нужны изначально, сейчас все делается по кривому(загружаются все записи, фильтруются нужные, и применяются фильтры)
Спасибо!
Нравится
Сериков Асхат Кайратович,
Если требуется, чтобы записи загружались изначально и фильтр нельзя было отрубить, то в схеме секции:
//можно ещё использовать функцию getFilters initQueryFilters: function(esq) { var filters = this.callParent(arguments); //добавляем свои фильтры return filters; }
Алексей-Карягин пишет:
Фильтр?
Сейчас так и работает, через фильтр. Но они не всегда срабатывают быстро, бывает что подгружает все записи, потом моргает и показывает только нужные. То есть сначала выгрузил все и только потом применил фильтрацию.
Хотелось бы сразу выгружать отфильтрованные данные, а не применять фильтрацию на все данные
Сериков Асхат Кайратович,
Если требуется, чтобы записи загружались изначально и фильтр нельзя было отрубить, то в схеме секции:
//можно ещё использовать функцию getFilters initQueryFilters: function(esq) { var filters = this.callParent(arguments); //добавляем свои фильтры return filters; }
Сериков Асхат Кайратович пишет:
Сейчас так и работает, через фильтр. Но они не всегда срабатывают быстро, бывает что подгружает все записи, потом моргает и показывает только нужные. То есть сначала выгрузил все и только потом применил фильтрацию.
Нет, фильтры работают не так. По условиям фильтрации класс EntitySchemaQuery формирует SQL-запрос, который и идёт от сайта в базу. А уже по нему из базы возвращается коллекция записей-результатов.
Если сразу выгружаются все записи, а потом второй раз идёт запрос в базу уже с фильтром, то это что-то напутано в JS-логике этой страницы раздела. Можно развернуть демку и проверить аналогичные шаги на ней. Если там сразу фильтрует, то нужно смотреть доработки раздела.
Сериков Асхат Кайратович,
Если у вас нет багов в логике страницы, то фильтр как раз и выберет только то, что нужно на уровне БД, не на уровне страницы. Представьте себе, что у вас миллион записей, сколько бы времени занимала их выборка и фильтрация на клиенте?