Php 命名空间“src\AppBundle\Entity\YesNo”不包含任何映射的实体。
我正在使用Symfony2,并试图使用YML创建对象。与Symfony 1.x文档相比,这方面的文档似乎非常粗略 我的树结构如下所示:Php 命名空间“src\AppBundle\Entity\YesNo”不包含任何映射的实体。,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我正在使用Symfony2,并试图使用YML创建对象。与Symfony 1.x文档相比,这方面的文档似乎非常粗略 我的树结构如下所示: ├── src │ ├── Acme │ │ └── DemoBundle │ ├── AppBundle │ │ ├── AppBundle.php │ │ ├── Controller │ │ ├── Resources │ │ ├── Tests │ │ └── Utils 我在src/AppBun
├── src
│ ├── Acme
│ │ └── DemoBundle
│ ├── AppBundle
│ │ ├── AppBundle.php
│ │ ├── Controller
│ │ ├── Resources
│ │ ├── Tests
│ │ └── Utils
我在src/AppBundle/Resources/config/doctor/reference_entities.yml中有一个文件,其中包含以下内容:
## YAML Template.
---
# Yes/No
AppBundle\Entity\YesNo:
type: entity
table: yesno
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
name:
type: string
length: 100
indexes:
name_idx:
columns: name
uniqueConstraints:
search_idx:
columns: [name]
我根据Symfony文档键入以下控制台命令:
php app/console doctrine:generate:entities src/AppBundle/Entity/YesNo
这是控制台的输出:
Generating entities for namespace "src\AppBundle\Entity\YesNo"
[RuntimeException]
Namespace "src\AppBundle\Entity\YesNo" does not contain any mapped entities.
doctrine:generate:entities [--path="..."] [--no-backup] name
我做错了什么?我不知道您如何处理YAML文件,但我认为您应该生成一个实体类,并实现所有getter和setter 因此,在实体文件夹中放置一个名为YesNo的类:
<?php
namespace Test\AppBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity()
* @ORM\Table(name="yesno")
*/
class YesNo {
.... all your getters / setters
}
下一个问题是,在像Acme一样将包直接放在源文件夹中之前,应该定义一个名称空间。您应该创建类似于
公司\MyBundle
下面是一些如何创建实体类的示例
^^^^^
在这里,您可以找到完整的示例和所需的所有命令 我明白了,似乎在Symfony2中,ORM的使用方式已经发生了很大的变化。我上次使用Symfony 1.4.x和Propel。我会按照你的建议做些修改,如果行得通,我会接受你的回答事实上,我刚刚看了你发送的第二个链接。我更喜欢使用YML,因为我对它很熟悉,而且我可以轻松地创建FKs、索引和确保引用完整性等。你应该先看看Symfony2;在你开始之前。。。实体在实体类中设置。。。请阅读手册。。。好啊我看了手册。这是一个有效的工作流:1。使用生成实体并选择yml格式2。修改生成的yml文件以添加复杂关系等3。是否使用generate entities更新生成的php类?