Symfony: строки, содержащие только цифры, сохраняются как числа, неудачные запросы

Я использую Symfony и Mongo. У меня есть документы для каждой из моих коллекций монго. В документах я определил все поля как строки, хотя некоторые из них обычно содержат числовые значения.

Я выполняю поиск в этих коллекциях и фильтрую их следующим образом:

private function like($paramValue) {
return new \MongoRegex("/.*" . FilterHelper::castValue(FilterType::INT, $paramValue) . ".*/ix");
}
...
$qb->field('articleId')->equals( $this->like($params['articleCode']) );

Тем не менее, значения сохраняются как числа в монго, "article_id": NumberInt(197568), Документ написан так:

/**
* @MongoDB\String(name="article_id")
*/
protected $articleId;

Естественно, запросы не выполняются, потому что тип не является ожидаемым. Как я могу это исправить? Я не могу предположить $articleId это число.

0

Решение

Ты думал о strval функция php?

$qb->field('articleId')->equals( $this->like(strval($params['articleCode'])) );

Конечно, вы должны подать заявку strval прежде чем передать его like() функционировать и проверить возвращаемое значение

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]