Doctrine ORM CLI 工具不起作用

Posted

技术标签:

【中文标题】Doctrine ORM CLI 工具不起作用【英文标题】:Doctrine ORM CLI Tool Not working 【发布时间】:2014-08-05 05:21:28 【问题描述】:

我有学说版本 2.3.2,它的 CLI 工具运行良好。现在,只是尝试更新到 ORM v2.4.4,仅通过运行“./vendor/bin/doctrine”命令就会出现以下错误:

php Catchable fatal error:  Argument 1 passed to 
Doctrine\ORM\Tools\Console\ConsoleRunner::run() must be an instance of 
Symfony\Component\Console\Helper\HelperSet, integer given, called in 
/vagrant/vendor/doctrine/orm/bin/doctrine.php on line 59 and defined in 
/vagrant/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php on line 57

谁能解释一下可能出了什么问题?谢谢。

【问题讨论】:

【参考方案1】:

好的,我找到了解决方案。这需要对 cli-config 进行少量更改,如下所示:

$helperSet = new \Symfony\Component\Console\Helper\HelperSet(array(
    'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()),
    'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em)
));
return $helperSet;

在以前的版本中,只包含 cli-config.php 文件就可以了(它需要一个名为 '$helperSet' 的变量)。但是,在新版本中,它需要返回变量并将其分配给其内部变量。

【讨论】:

对于那些想知道$em 是什么的人:$em = \Doctrine\ORM\EntityManager::create($doctrineConnection, $doctrineConfiguration);

以上是关于Doctrine ORM CLI 工具不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Doctrine2.3 和 OneToOne 级联持续似乎不起作用

Doctrine DBAL 参数不起作用

使用方法查找的教义2 oracle 查询,不起作用

教义命令行界面不起作用

更新关系映射后,Symfony 2 原则坚持不起作用

带有模式注释的 Doctrine ORM 表