0

我正在尝试手动将 DoctrineFixturesBundle 添加到我的 symfony 项目中,因此我收到以下错误。

C:\wwwnet\symfony>php app/console doctrine:fixtures:load

Fatal error: Class 'Doctrine\Bundle\DoctrineBundle\Command\DoctrineCommand' not found in    C:\wwwnet\symfony\vendor\bundles\Doctrine\Bundle\FixturesBundle\Command\LoadDataFixturesDoctrineCommand.php on line 34

我已经按照此处列出的步骤如何从 Zip 文件安装 Symfony 2.0 Bundle

在我的 AppKernel 中,我添加了:

$bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle();   

在自动加载中我有:

'Doctrine\\Bundle' => __DIR__.'/../vendor/bundles',
//'Symfony\\Bundle\\DoctrineFixturesBundle' => __DIR__.'/../vendor/bundles',
//'Doctrine\\Bundle\\DoctrineFixturesBundle' => __DIR__.'/../vendor/bundles',
'Doctrine\\Common\\DataFixtures'    => __DIR__.'/../vendor/doctrine-fixtures/lib',
'Doctrine\\Common' => __DIR__.'/../vendor/doctrine-common/lib',
'Doctrine\\DBAL'   => __DIR__.'/../vendor/doctrine-dbal/lib',
'Doctrine'         => __DIR__.'/../vendor/doctrine/lib',

我已将捆绑包添加到:

C:\wwwnet\symfony\vendor\bundles\Doctrine\Bundle\FixturesBundle

我已经看到了这个问题Symfony2 DoctrineFixturesBundle 命名空间错误,这似乎表明我可能正在使用 2.1 捆绑包和 2.0 symfony

此外,只要您使用 Symfony 2.0.x,DoctrineBundle 就永远不会在 Doctrine\Bundle 命名空间中。Symfony 2.0.x 在 bundles\Symfony 下附带了 DoctrineBundle。您的问题是您正在尝试使用过于新版本的 DoctrineFixturesBundle,它需要 Doctrine\Bundle 下的 DoctrineBundle。我的第一个建议是将捆绑包标记为 version=origin/2.0 应该可以解决这个问题。– 韭菜 3 月 11 日 20:22

如何获取https://github.com/doctrine/DoctrineFixturesBundle的 2.0 捆绑包?如果这甚至是问题所在,那么我对此一无所知,并且已经漫无目的地挠头两天了。

  • Symfony:Symfony_Standard_Vendors_2.0.16
  • PHP:5.3.6
  • 阿帕奇:2.2
4

1 回答 1

0

在你的 deps 文件中添加

[doctrine-fixtures]
    git=http://github.com/doctrine/data-fixtures.git

[DoctrineFixturesBundle]
    git=http://github.com/doctrine/DoctrineFixturesBundle.git
    target=/bundles/Symfony/Bundle/DoctrineFixturesBundle
    version=origin/2.0

所以你在最后一行定义版本,在bin/vendor update那之后做

于 2012-08-03T20:42:02.237 回答