2

現在、ターミナルでコマンドを実行して CRON ジョブを実行しようとしています。しかし、次のエラーがスローされます。

PHP Fatal error:  Call to a member function has() on a non-object in /MyProject/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php on line 161

これは、コマンド ファイル内の私のコードです。

namespace MyProject\UtilityBundle\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;



    class projectOngoingCommand extends Command
    {
        protected function configure()
        {
            $this
                ->setName('projectOngoingEstimation:submit')
                ->setDescription('Submit Ongoing Project Estimation')

                ;
        }

        protected function execute(InputInterface $input, OutputInterface $output)
        {

           ;
            $projectController= new \MyProject\ProjectBundle\Controller\DefaultController();  


             $msg = $projectController->updateMonthlyOngoingAllocation();


            $output->writeln($msg);
        }
    }

これは、デフォルトのコントローラーの私のコードです。

// cron job code
    public function updateMonthlyOngoingAllocation() {

              $em = $this->getDoctrine()->getEntityManager();
        $project = $this->getDoctrine()->getRepository('MyProjectEntityBundle:Project')
                    ->getAllOngoingProjectList();
       return "hello";
      }

このメソッドは、コマンドを使用して正常に呼び出されました

sudo php app/console projectOngoingEstimation:submit

しかし、最初の行でエラーがスローされます。すなわち

 $em = $this->getDoctrine()->getEntityManager();

コントローラー内の別の Action メソッドから関数を呼び出そうとすると、正常に動作します。

4

2 に答える 2