私はSymfonyとdoctrine/mongodbを使い始めています。私は、集計クエリを実行しようとしているが、私はsymfonyでdoctrine/mongodbとの集約クエリを構築するには?
を取得このようなものを持つクラスの「createAggregationBuilder」という名前の未定義のメソッド「教義\ ODM \ MongoDBの\のDocumentManager」
を呼び出そうとしました:
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class TestController extends Controller
{
/**
* @Route("/test", name="test")
*/
public function testAction(Request $request) {
$builder = $this->get('doctrine_mongodb')
->getManager()
->createAggregationQuery('AppBundle:Test');
var_dump($builder);
}
}
すべてのマニュアルまたはstackoverflowの質問と回答は
$dm->createAggregationQuery();
で始まるので、私は、今はかなりイライラしています
この場合、$dm
の略語は見つかりません。
本当にありがとうございます。
UPDATE
私は教義/ MongoDBの-ODMソースコードの周りを探していたと私は私のバージョンはDocumentRepository.php
と
DocumentManager.php
ファイル(両方にあり、両方から
createAggregationBuilder
機能が欠落していることがわかった
/vendor/doctrine/mongodb-odm/lib/Doctrine/MongoDB
フォルダ。
どのようにこれをすることができますか?
私が作曲された、私はバージョン1.1.6を持っていると言う意味最新のリリースとgitリポジトリで私はこれらの方法を参照してください(DocumentRepository.php、DocumentManager.php)
おそらく、[Doctrine Docs:Aggregation Builder](http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/aggregation-builder.html)が役に立ちます。 '$ dm'はおそらくほとんどの例でDocumentManagerインスタンスです。 – ccKep
回答ありがとうございますが、すべての例は次のように始まります: '$ builder = $ dm-> createAggregationBuilder(\ Documents \ User :: class);' DocumentManagerクラスをどのようにインスタンス化できますか?私はこれが '$ this-> get( 'doctrine_mongodb') - > getManager()'のことでした。おそらく私は教義の方法を十分に知らない人です。 –
@ccKep私はあなたのコードを変更してください: –