我尝试过在论坛甚至官方文档中找到的几个不同的例子,但似乎无法理解并使其发挥作用。
这很简单,但我写的任何东西都不起作用!
所以,我有Category
实体和Site
实体。一个类别应该有很多站点。多数民营,真的。如何映射它们?
我知道我应该在Category
实体中将字段 sites 作为OneToMany关系,并在Site
实体中将 category 字段作为ManyToOne ?
我尝试过的最基本的代码是:
/**
* @ORM\OneToMany(targetEntity="Site", mappedBy="category")
*/
protected $sites;
/**
* @ORM\ManyToOne(targetEntity="Category")
*/
protected $category;
调用时(在Symfony 2中)没有错误:
app/console doctrine:generate:entities TestSampleBundle\Entity\Category (or Site)
,但是说:
Namespace "..." does not contain any mapped entities.
我对Doctrine很新,所以请不要侮辱,我同意我可能无法理解这些例子,他们可以完美地工作,但即便如此,我需要有人用2句话来解释这个,所以我知道从哪里开始。我还没有设法让映射工作。
答案 0 :(得分:0)
查看您的pastebin后,我发现您的命名空间可能存在一些问题:
尝试替换
namespace Tony\NachalotoBundle\Entity\Catalog;
与
namespace Tony\NachalotoBundle\Entity;
并确保将其放在文件夹
中src/Tony/NachalotoBundle/Entity
作为一般建议:始终确保您的命名空间与您的文件夹结构和symfony命令中的用法相匹配。只有注意命名空间时,自动加载器才能正常工作!
答案 1 :(得分:0)
请确保您没有任何其他学说声明格式(yml,xml,...)。
就我而言,MyBundle中有一个文件,.. / Resss / doctrine / Users.orm.yml,导致学说没有读取实体定义的注释。
删除此文件夹,因为它不是必需的原因类用户是通过注释定义的,解决了我的问题。