#php #rest #parse-platform
#php #rest #синтаксический анализ-платформа
Вопрос:
Я реализовал запрос для сообщений чата в PARSE, используя их REST API. Моя проблема в том, что я получаю сообщения, в которых каким-то образом отправитель и получатель были одинаковыми.
Очевидно, ошибка или тест в отладочной версии. В любом случае, эти сообщения не должны отображаться.
Очевидно, я хочу исправить это, изменив свой запрос PARSE, а не просматривать все сообщения и удалять неправильные. Это вообще возможно? Я не очень хорошо разбираюсь в PARSE REST API.
Это то, что я передаю в PARSE API:
$aWhere = array(
self::FIELD_SENDER => array('$in' => array($sUsername1, $sUsername2)),
self::FIELD_RECEIVER => array('$in' => array($sUsername1, $sUsername2)),
);
$url = 'https://api.parse.com/1/classes/test?where='.json_encode($aWhere);
url затем передается в CURL
Я хочу избегать сообщений, где self::FIELD_SENDER
есть $sUsername1
И self::FIELD_RECEIVER
is $sUsername1
, и то же самое относится к $sUsername2
.
Ответ №1:
Я настоятельно рекомендую вам вместо этого исправить свои данные с помощью задания.
Что касается того, что вы просите, вы не можете получить то, что хотите. Давайте исследуем логику:
- Вы могли бы попробовать создать запрос OR
- Запрос 1: отправитель != пользователь1 И получатель != пользователь1
- Запрос 2: отправитель != пользователь2 И получатель != пользователь2
Может показаться, что это даст желаемые результаты, за исключением ситуации, исключенной запросом 1, удовлетворяемой запросом 2, и наоборот.
Как насчет использования $ nin (не в):
- отправитель отсутствует (пользователь1, пользователь2)
- приемник не включен (пользователь1, пользователь2)
К сожалению, это также исключит следующие сообщения:
- отправитель = пользователь1, получатель = (любой)
- отправитель =пользователь2, получатель = (любой)
- отправитель = (любой), получатель =пользователь1
- отправитель = (любой), получатель =пользователь2