我正在使用Symfony2,我正在尝试使用YML创建对象。这个文档似乎非常粗略(与Symfony 1.x文档相比)。
我的树结构如下所示:
├── src
│ ├── Acme
│ │ └── DemoBundle
│ ├── AppBundle
│ │ ├── AppBundle.php
│ │ ├── Controller
│ │ ├── Resources
│ │ ├── Tests
│ │ └── Utils
我有一个位于src / AppBundle / Resources / config / doctrine / 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
我做错了什么?
答案 0 :(得分:0)
我不知道您尝试使用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
之前定义一个命名空间,直接在源文件夹中包含你的包。你应该创建类似
Company\MyBundle
http://symfony.com/doc/current/cookbook/bundles/best_practices.html
以下是如何创建实体类的一些示例。
http://symfony.com/doc/current/book/doctrine.html#creating-an-entity-class
^^^^^
在这里,您可以找到所需的完整示例和所有命令。