生成单个实体时对“在非对象上调用成员函数”进行故障排除

时间:2011-03-15 12:10:20

标签: symfony

我正在研究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

1 个答案:

答案 0 :(得分:2)

老问题,但我刚刚这样做了!

看来你正在使用Linux,所以打开一个终端,cd到Symfony的app目录,然后运行./console --shell

这将启动交互式shell,你可以在其中逐步运行命令,如果不是有点慢,我发现它会更有帮助。

当shell打开时,键入doctrine:generate:entity,它将运行一个小向导,您可以在其中为特定包创建单个实体。它会首先询问你的名字,例如。 HelloBundle:EntityName,然后它会要求使用语法(yml,xml,annotation)然后它会让你输入字段及其类型。

执行该操作后(如果需要),并在字段名称为空白时返回返回,它将询问您是否要为实体生成存储库类,最后确保要生成所有实体。再次点击返回,您的实体文件将被制作。

我尝试了OP中描述的单行命令方式,但遇到了奇怪的错误(可能做错了),但是这可能是一个简单的例子,即接受该命令并用{{1}替换entities }。

更多信息:http://symfony.com/doc/current/book/doctrine.html