Режим or-mode в selector — различия между версиями
Williwaw (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9.5''' == Задача == Необходимо получить все объекты каталога, у которы…») |
(нет различий)
|
Версия 15:58, 25 февраля 2014
Актуально для версии 2.9.5
Задача
Необходимо получить все объекты каталога, у которых либо одно из указанных в выборке полей равно определенному значению(режим fields) или значение какого либо одного поля равно одному из нескольких вариантов(режим field).
Решение
Например, найдем все объекты каталога,у которых либо поле "цена", либо поле "вес" равно 310(fields) Важно: необходимо точно идентификатор типа в выборке. Т.е., если у Вас родительский тип-"объект каталога", а поля, по которым производится выборка находятся, например, в типе "холодильники", и идентификатор типа в выборке указывается как идентификатор родительского типа, то в результате получим ошибку Ошибка (selectorException): Field "weight" is not presented in selected object types:
$pages = new selector('objects');
$pages->types('object-type')->id(119);
$pages->option('or-mode')->fields('price','weight');
$pages->where('price')->equals(310);
$pages->where('weight')->equals(310);
Результаты можно вывести например так:
foreach($pages as $page){
echo "<a href=\"{$page->link}\">{$page->name}</a>\n";
}
echo "Pages found: {$pages->length}";