在symfony custom命令中使用Doctrine ArrayCollection

时间:2017-09-10 13:20:22

标签: php symfony doctrine

我想在自定义symfony命令中使用ArrayCollection

但我的方式是抛出错误

  

在链配置的命名空间AppBundle \ Entity

中找不到类'Doctrine \ Common \ Collections \ ArrayCollection'

我的命令

<?php

namespace AppBundle\Command;

use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Doctrine\Common\Collections\ArrayCollection;
use AppBundle\Entity\Gameworld;

class MyCommand extends ContainerAwareCommand
{
    protected function configure()
    {
        $this
            ->setName('get:gw')
            ->setDescription('Populate gameworld')
        ;
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $em = $this->getContainer()->get('doctrine')->getManager();

        $output->writeln('<info>Get current Gameworlds</info>');
        $gws = $em->getRepository('AppBundle:Gameworld')->findAll();

        $gws = new ArrayCollection($gws);

        /* rest of the command */
    }
}

我尝试new \Doctrine\Common\Collections\ArrayCollection($gws);

但错误仍然存​​在。

希望你能提供帮助。

1 个答案:

答案 0 :(得分:0)

您可能尝试在Gameworld构造函数(或相关实体构造函数中的某个位置)中创建 ArrayCollection 的实例,但是您没有使用使用Doctrine \ Common \ Collections \ ArrayCollection导入它; < / strong>打电话。尝试检查 AppBundle \ Entity \ Gameworld 类及其相关实体是否存在ArrayCollection,并检查是否在该类中正确导入它。