2017-09-29 13 views
0

私はSymfony &の初心者で、すでに病気になっています!Symfony:nullにメンバー関数has()を呼び出す

これは私の単純なコードです:

Error: Call to a member function has() on null in vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerTrait.php (line 356)

わからないが、私は教義を取得するために失敗していると思う:

<?php 

namespace AppBundle\Controller; 

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Request; 
use AppBundle\Entity\Users; 

class ValidationController extends Controller 
{ 
    public function alreadyExists($email){ 
     $repository = $this->getDoctrine()->getRepository('AppBundle:Users'); //ERROR IN THIS LINE 
     $user = $repository->findOneBy(array('email' => $email)); 
     if($user==NULL) return true; 
     else return false; 
    } 
} 

?> 

私はそれが私にこのエラーを与えている機能alreadyExists呼び出し

。私がトレースすると、エラーが実際すなわち、ライン356上の vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerTrait.phpファイルで発生します。

protected function getDoctrine() 
    { 
     if (!$this->container->has('doctrine')) { ///LINE NO. 356 
      throw new \LogicException('The DoctrineBundle is not registered in your application.'); 
     } 
     return $this->container->get('doctrine'); 
    } 

まったく同じ機能でもその同じコードや他のコントローラが、私があれば、別のコントローラでそれをカット&ペーストうまく機能します全く同じnamespace & useステートメント。

私はこのエラーが何であるか教えてください。&どうしてこんなことが起こったのですか?

+0

チェックアウトこのフェッチを実行するだけで、その後、最初の教義マネージャを取得必要があります:https://github.com/symfony/symfony/issues/23200 – Wreigh

+1

はその$コンテナを言うだろうし無効である。ここを見て=> https://stackoverflow.com/questions/21129590/symfony-2-service-container-is-null – YaatSuka

+0

@ YaatSukaしかし、私の場合は、サービス、そのコントローラではありません。私の知らないことを許しますが、コントローラとサービスの間でsymfonyがどの程度正確に違いますか? – Echoes

答えて

-1

HIあなたは、クエリに

<?php 

namespace AppBundle\Controller; 

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Request; 
use AppBundle\Entity\Users; 

class ValidationController extends Controller 
{ 
    public function alreadyExists($email){ 
     $em = $this->getDoctrine()->getManager(); 
     $repository = $em->getRepository('AppBundle:Users'); //ERROR IN THIS LINE 
     $user = $repository->findOneBy(array('email' => $email)); 
     if($user==NULL) return true; 
     else return false; 
    } 
} 

?> 
+0

いいえ、同じエラーが発生しました... – Echoes

+0

DoctrineサービスとManagerによってリポジトリにアクセスすることはできません – YaatSuka

関連する問題