2016-08-05 11 views
2

値次にDoctrineはエンティティを生成してみましょう。新しく作成されたレコードには、期待どおりの値を持つ新しいフィールド「都市」があります。しかし、これらの値はmongoコンソールでしか見ることができません。 Doctrineの出力では、常に "null"に設定されます。エンティティエントリは

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

symfonyのプロファイラは、クエリ私を示し

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); 
} 

コントローラーで持って正しいと思われます10。ダンプされた$テストの内容

#firstName: "John" 
#city: null 

私が逃しているものは何ですか?

php bin/console cache:clearとEDIT

キャッシュのクリアが問題を解決しました。 php bin/console doctrine:mongodb:cache:clear-metadataで十分ではありませんでした。ありがとうございますmalarzm

+1

キャッシュをクリアしてApacheを再起動してください。このようなことは、通常更新されていないハイドラやキャッシュされていないメタデータ(まだ更新されていないもの)に起因します。 – malarzm

答えて

0

私はこの質問が尋ねられてから8ヶ月ですが、同じ問題を抱えてしばらく教義と戦っていたことを知っています。私はSymfony 3を使用しており、私はphp bin/console doctrine:mongodb:cache:clear-metadataを試してみました。

最後にコマンドphp bin/console cache:clearを実行するか、このコマンドでキャッシュを削除してsudo rm -rf var/cacheとし、問題を修正しました。

関連する問題