我正在研究symfony2并为此制作演示示例。
当我试图在命令下运行时。
$php app/console doctrine:generate:entities HelloBundle
它的工作正常。但它会生成所有实体。
但如果我想生成特定的一个实体,那么
$php app/console doctrine:generate:entities HelloBundle --entity="User"
它给出了以下错误
$ php console doctrine:generate:entities HelloBundle --entity="Messages" Generating entities for "HelloBundle" PHP Fatal error: Call to a member function getShortName() on a non-object in /home/prakash/web/Symfony/vendor/symfony/src/Symfony/Bundle/DoctrineBundle/Command/GenerateEntitiesDoctrineCommand.php on line 63
答案 0 :(得分:2)
老问题,但我刚刚这样做了!
看来你正在使用Linux,所以打开一个终端,cd
到Symfony的app目录,然后运行./console --shell
。
这将启动交互式shell,你可以在其中逐步运行命令,如果不是有点慢,我发现它会更有帮助。
当shell打开时,键入doctrine:generate:entity
,它将运行一个小向导,您可以在其中为特定包创建单个实体。它会首先询问你的名字,例如。 HelloBundle:EntityName
,然后它会要求使用语法(yml,xml,annotation)然后它会让你输入字段及其类型。
执行该操作后(如果需要),并在字段名称为空白时返回返回,它将询问您是否要为实体生成存储库类,最后确保要生成所有实体。再次点击返回,您的实体文件将被制作。
我尝试了OP中描述的单行命令方式,但遇到了奇怪的错误(可能做错了),但是这可能是一个简单的例子,即接受该命令并用{{1}替换entities
}。