2016-08-05 9 views
2

I NeueintragSymfony MongoDB kann kein neues Feld abrufen Werte

/** 
* @MongoDB\Field(type="string") 
*/ 
protected $city; 

Dann Lehre Einheiten hinzugefügt haben generieren lassen. Jetzt neu erstellte Datensätze haben neues Feld "Stadt" mit Werten wie erwartet. Allerdings kann ich diese Werte nur in der Mongo-Konsole sehen. In der Doctrine-Ausgabe sind sie immer auf "null" gesetzt. Die Einheit Einträge scheint richtig

public function getFirstName() 
{ 
    return $this->firstName; 
} 

/** 
* Get city 
* 
* @return string $city 
*/ 
public function getCity() 
{ 
    return $this->city; 
} 

Ich habe Repository

public function allQuery($cat) 
{ 
    $q = $this->createQueryBuilder() 
     ->sort('createdAt', 'DESC'); 

    if ($cat) { 
     $q->field('category.$id')->equals(new \MongoId($cat)); 
    } 
    return $q; 
} 

und Service

function addAllPager($perPage = 10, $cat) 
{ 
    return $this->_addPager($this->repo()->allQuery($cat), $perPage); 
} 

Kontroller

$helper = $this->get('appbundle.test.helper'); 
    $tests = $helper->addAllPager(10, $cat); 

Symfony Profiler zeigt mir Abfrage db.Test.find().sort({ "createdAt": -1 }).limit(10).skip(0). Dumped Inhalt von $ Tests

#firstName: "John" 
#city: null 

Was ich vermisse?

EDIT

Cache Clearing mit php bin/console cache:clear das Problem gelöst. php bin/console doctrine:mongodb:cache:clear-metadata war nicht genug. Danke malarzm.

+1

Bitte leeren Sie Ihren Cache und starten Sie Apache neu. Dies liegt normalerweise an nicht aktualisierten Hydratoren oder zwischengespeicherten Metadaten, die noch nicht aktualisiert wurden. – malarzm

Antwort

0

Ich weiß, das ist 8 Monate, nachdem die Frage gestellt wurde, aber hatte das gleiche Problem und kämpfte mit der Doktrin für eine Weile. Ich benutze Symfony 3 und habe versucht php bin/console doctrine:mongodb:cache:clear-metadata ohne Glück.

Ich habe schließlich den Befehl php bin/console cache:clear ausgeführt oder löschen Sie einfach den Cache mit diesem Befehl sudo rm -rf var/cache und das Problem behoben.

Verwandte Themen