xPDOQuery.orCondition
Последнее обновление Jan 28th, 2020 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$306 per month—let's make that $500!
Learn morexPDOQuery::orCondition¶
Добавьте условие OR
в операторWHERE
в запросе.
Синтаксис¶
API Docs: xPDOQuery::orCondition()
void orCondition ( $conditions, [ $binding = null], [ $group = 0])
Пример¶
Возьмите все коробки шириной 12 или 14.
$query = $xpdo->newQuery('Box');
$query->where(array(
'width' => 14,
));
$query->orCondition(array(
'width' => 12,
));
$boxes = $xpdo->getCollection('Box',$query);
Предупреждение¶
Порядок вызова функций важен! orCondition должно следовать после where, где метод был использован.
Другой пример¶
Вот более знакомый пример, используемый для получения страниц, когда у них установлены даты publish
/unpublish
. Это демонстрирует альтернативный синтаксис для условия или. Обычно каждое место в массиве, предоставленном методу where, где объединяется с помощью SQL AND
, но вы можете использовать префикс OR
в именах столбцов, чтобы указать, как группы терминов объединяются.
В следующем примере страница must должна быть опубликована (1), а pub_date
должен быть либо нулевым, либо меньшим или равным текущей отметке времени. Значение unpub_date
должно быть либо нулевым, либо большим, чем текущая временная метка.
$criteria = $modx->newQuery('modResource');
$criteria->where(array(
'published' => 1,
array(
'pub_date' => 0,
'OR:pub_date:<=' => time(),
),
array(
'unpub_date' => 0,
'OR:unpub_date:>' => time(),
),
)
);
Пример c объединенными столами¶
Параметры вашего фильтра могут ссылаться на поля в других таблицах.
$query = $modx->newQuery('modUser');
$query->innerJoin('modUserProfile','Profile');
$query->where(array(
'modUser.username' => $email,
));
$query->orCondition(array(
'Profile.email' => $email,
));
$user = $modx->getObject('modUser', $query);
Параметры фильтра могут использовать имя класса (как в modUser
выше) или псевдоним (как профиль выше).
Смотрите также¶
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$306 per month—let's make that $500!
Learn more