Docrtrine (symfony2.1) を使用して一部のデータを MongoDB に永続化しようとしています。ここに私のエンティティがあります:
// src/Acme/ReportsBundle/Entity/ReportCore.php
namespace Acme\ReportsBundle\Entity;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @MongoDB\Document(collection="registeredReports")
*/
class ReportCore {
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\String
*/
protected $title;
/**
* @MongoDB\String
*/
protected $description;
/**
* @MongoDB\String
*/
protected $reference;
/**
* @MongoDB\Date
*/
protected $created;
/**
* @MongoDB\Date
*/
protected $createdBy;
/**
* @MongoDB\EmbedMany(targetDocument="ReportFields")
*/
protected $fields = array();
public function __construct () {
$this->fields = new ArrayCollection();
}
// Setters, getters
}
埋め込みドキュメントは次のとおりです。
// src/Acme/ReportsBundle/Entity/ReportFields.php
namespace Acme\ReportsBundle\Entity;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\EmbeddedDocument
*/
class ReportFields {
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\String
*/
protected $title;
/**
* @MongoDB\String
*/
protected $description;
/**
* @MongoDB\String
*/
protected $name;
/**
* @MongoDB\String
*/
protected $type;
//Setters-getters...
}
ここにコントローラーがあります:
// src/Acme/ReportsBundle/Controller/ReportsController.php
namespace Acme\ReportsBundle\Controller;
use Acme\ReportsBundle\Entity\ReportCore;
use Acme\ReportsBundle\Entity\ReportFields;
use Acme\ReportsBundle\Form\Type\ReportCoreType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class ReportsController extends Controller {
public function newAction (Request $request) {
$report = new ReportCore();
$fields1 = new ReportFields();
$report->getFields()->add($fields1);
$form = $this->createForm(new ReportCoreType(), $report);
if ( $request->isMethod('POST') ) {
$form->bind($request);
if ( $form->isValid() ) {
$dm = $this->get('doctrine_mongodb')->getManager();
$dm->persist($report);
$dm->flush();
}
}
return $this->render('AcmeReportsBundle:Report:new.html.twig', array(
'form' => $form->createView()
));
}
私の問題は-データをデータベースに永続化しようとすると、
The class 'Acme\ReportsBundle\Entity\ReportCore' was not found in the chain configured namespaces FOS\UserBundle\Document
私は Symfony と Doctrine にまったく慣れていないので、FOSUserBundle と何の関係があり、何が間違っているのかわかりません。