Я добавил новую запись в описании документаSymfony MongoDb не может получить новое поле значения
/**
* @MongoDB\Field(type="string")
*/
protected $city;
Тогда пусть Doctrine генерировать объекты. Теперь вновь созданные записи имеют новое поле «город» со значениями, как ожидалось. Однако я вижу эти значения только в консоли mongo. В выводе Doctrine они всегда имеют значение «null». Записи сущностей кажется правильным
public function getFirstName()
{
return $this->firstName;
}
/**
* Get city
*
* @return string $city
*/
public function getCity()
{
return $this->city;
}
У меня есть хранилище
public function allQuery($cat)
{
$q = $this->createQueryBuilder()
->sort('createdAt', 'DESC');
if ($cat) {
$q->field('category.$id')->equals(new \MongoId($cat));
}
return $q;
}
И сервис
function addAllPager($perPage = 10, $cat)
{
return $this->_addPager($this->repo()->allQuery($cat), $perPage);
}
В контроллере
$helper = $this->get('appbundle.test.helper');
$tests = $helper->addAllPager(10, $cat);
Symfony профайлер показывает мне запрос db.Test.find().sort({ "createdAt": -1 }).limit(10).skip(0)
. Сброшенное содержание $ тестов
#firstName: "John"
#city: null
Что мне не хватает?
РЕДАКТИРОВАТЬ
Очистка кэша с php bin/console cache:clear
решить эту проблему. php bin/console doctrine:mongodb:cache:clear-metadata
было недостаточно. Спасибо malarzm
.
Пожалуйста, очистите кеш и перезапустите Apache, такая вещь обычно связана с не обновленными гидраторами или кэшированными метаданными, которые еще не были обновлены. – malarzm