Symfony2中Doctrine的映射异常错误


Mapping Exception error with Doctrine in Symfony2

我需要你的帮助,因为它就像一天我被Symfony 2的映射问题卡住了。

首先,我是Symfony的新手,我只有2周的时间来练习这个框架。我们来谈谈我真正的问题。简介很简单,我有一个非常简单的形式,我用它来创建一个类别(CD/DVD/书籍等)。因此,通常情况下,我的页面显示所有已经存在的类别,我输入一个新的类别(如BLU-RAY为ie),然后该类别被保存在我的数据库命名的类别与这些属性(idcategory =BLU-RAY, idcatalog =CAT01)。

这是正常的情况,在我的例子中,我可以列出我所有的类别但是当我提交我的表单时,我得到了一个漂亮的

类"Doctrine'ORM'EntityRepository"在链中找不到已配置的名称空间SEBO'BackOfficeBundle'Entity

首先这是我的控制器

public function categorieAction(Request $request)
{
    $categorie = $this->getDoctrine()
        ->getRepository('SEBOBackOfficeBundle:Categorie');
    $listeCategorie = $categorie->findAll();
    $newCategorie = new Categorie();
    $newCategorie->setIdcatalogue('CAT01');
    $form = $this->createFormBuilder($newCategorie)
        ->add('idcategorie', 'text')
        ->add('Ajouter', 'submit')
        ->getForm();
    $form->handleRequest($request);
    if ($form->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $em->persist($categorie);
        $em->flush();
        $request->getSession()->getFlashBag()->add('notice', 'Catégorie bien enregistrée.');
        return $this->redirect($this->generateUrl('sebo_back_office_categorie', array(
            'listeCategorie' => $listeCategorie,
            'form' => $form->createView(),
        )));
    }
    $content = $this->get('templating')->render('SEBOBackOfficeBundle:Advert:categorie.html.twig', array(
        'listeCategorie' => $listeCategorie,
        'form' => $form->createView()
    ));
    return new Response($content);
}

这是我的类category。php

namespace SEBO'BackOfficeBundle'Entity;
use Doctrine'ORM'Mapping as ORM;
/**
* Categorie
*
* @ORM'Table(name="categorie", indexes={@ORM'Index(name="FK_Catalogue_IdCatalogue", columns={"IdCatalogue"})})
* @ORM'Entity
*/
class Categorie
{
/**
 * @var string
 *
 * @ORM'Column(name="IdCategorie", type="string", length=40, nullable=false)
 * @ORM'Id
 * @ORM'GeneratedValue(strategy="IDENTITY")
 */
private $idcategorie;
/**
 * @var 'Catalogue
 *
 * @ORM'ManyToOne(targetEntity="Catalogue")
 * @ORM'JoinColumns({
 *   @ORM'JoinColumn(name="IdCatalogue", referencedColumnName="IdCatalogue")
 * })
 */
private $idcatalogue;

/**
 * Get idcategorie
 *
 * @return string 
 */
public function getIdcategorie()
{
    return $this->idcategorie;
}
/**
 * Set idcatalogue
 *
 * @param string $idcatalogue
 * @return Categorie
 */
public function setIdcatalogue($idcatalogue)
{
    $this->idcatalogue = $idcatalogue;
    return $this;
}
/**
 * Set idcategorie
 *
 * @param string $idcategorie
 * @return Categorie
 */
public function idcategorie($idcategorie)
{
    $this->idcategorie = $idcategorie;
    return $this;
}
/**
 * Get idcatalogue
 *
 * @return 'SEBO'BackOfficeBundle'Entity'Catalogue 
 */
public function getIdcatalogue()
{
    return $this->idcatalogue;
}
}

这是我的Doctrine/ORM xml文件。

<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
  <entity name="Categorie" table="categorie">
    <indexes>
      <index name="FK_Catalogue_IdCatalogue" columns="IdCatalogue"/>
    </indexes>
    <id name="idcategorie" type="string" column="IdCategorie" length="40">
      <generator strategy="IDENTITY"/>
    </id>
<many-to-one field="idcatalogue" target-entity="Catalogue">
  <join-columns>
    <join-column name="IdCatalogue" referenced-column-name="IdCatalogue"/>
  </join-columns>
</many-to-one>
 </entity>
</doctrine-mapping>

一切都很好,直到我提交,我可以看到我的类别列表,但经过大量的搜索,我仍然看不到什么是类"Doctrine'ORM'EntityRepository",我肯定错过了一件事,我希望你能帮助。

在你的实体中,你必须设置:

使用原则' ORM ' EntityRepository;

此页有一个例子:

database and Doctrine

好吧,也许是因为我累了,但我试图发送对象$ category而不是我创建的新对象$ newcategory