我在论坛甚至官方文档中尝试了几个不同的例子,但似乎无法理解并使其发挥作用。
这很简单,但我写的任何东西都不起作用!
因此,我有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很陌生,所以请不要侮辱我,我同意我可能无法理解这些例子,它们可能非常有效,但即使如此,我也需要有人用两句话来解释这一点,这样我就知道从哪里开始了。我从来没有设法使映射工作。
查看您的pastebin后,我发现您的命名空间可能有一些问题:
尝试更换
namespace Tony'NachalotoBundle'Entity'Catalog;
带有
namespace Tony'NachalotoBundle'Entity;
并确保将其放在文件夹中
src/Tony/NachalotoBundle/Entity
一般建议:始终确保你的命名空间与你的文件夹结构和你在symfony命令中的使用相匹配。只有当您注意名称空间时,自动加载器才能正常工作!
确保没有任何其他条令声明格式(yml、xml…)。
就我而言,MyBundle中有一个文件/导致条令未阅读实体定义注释的资源/条令/Users.orm.yml。
删除这个文件夹,因为它不需要,因为类User是通过注释定义的,解决了我的问题。