2014-07-24 3 views
2

'findAllCtrs'메서드가 정의되지 않은 오류가 발생했습니다. 메소드 이름은 findBy 또는 findOneBy로 시작해야합니다!Symfony2가 내 저장소 클래스를 인식하지 못하는 것 같습니다

이 문제와 관련하여 StackOverflow에서 다른 모든 솔루션을 시도했습니다. 캐시를 삭제하고 메타 데이터 캐시를 지우고 네임 스페이스 및 폴더 엔티티를 검사했지만 여전히 수정하지 않았습니다.

namespace CFS\Bundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Ref 
* 
* @ORM\Table(name="ref", indexes={@ORM\Index(name="refno", columns={"refno"}), @ORM\Index(name="ctrno", columns={"ctrno"})}) 
* @ORM\Entity(repositoryClass="CFS\Bundle\Entity\RefRepository") 
*/ 
class Ref 
{ 

내 저장소 클래스 : 여기

내 실체

namespace CFS\Bundle\Entity; 

use Doctrine\ORM\EntityRepository; 

class RefRepository extends EntityRepository 
{ 
    public function findAllCtrs() 
    { 
    $query = $this->getEntityManager() 
     ->createQuery(' 
      SELECT 
       r.refno, r.ctrno 
      FROM 
       CFSBundle:Ref r 
      ORDER BY 
       r.refno DESC 
      '); 

    try { 
     return $query->getResult(); 
    } catch(\Doctrine\ORM\NoResultException $e) { 
     return null; 
    } 
} 

}

그리고 나는 내 컨트롤러 메서드를 호출 시도 :

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

    $containers = $em->getRepository('CFSBundle:Ref') 
      ->findAllCtrs(); 

나는주의를 기울였다. d는 명령 줄에 엔터티를 생성 할 때 php app/console doctrine:generate:entities CFSBundle이 내 RefRepository.php 파일을 인식하지 못합니다. 그 밖의 무엇을 놓칠 수 있었느냐?

+0

혹시 Resources \ config \ doctrine \ Ref.orm.yml 파일이 있습니다. – Cerad

+0

@Cerad, 네, 무엇을 찾고 있습니까? – user3757305

+0

@ 화요일, 실제로는 .yml이 아닌 .xl – user3757305

답변

1

나는 비슷한 해결책을 찾기 위해 하루를 보내고 난 후에 저장소 클래스를 참조하는 주석에 오타가 있음을 발견했다.
그러나 제공 한 코드에서 실수를하지 않으므로 작동해야합니다.

https://stackoverflow.com/a/15184084/1781752을 읽습니까?
yml 매핑과 주석을 혼합하는 데 문제가있는 것으로 보입니다.

+1

당신이 틀립니다! 주석과 다른 형식을 혼합하는 문제였습니다. – user3757305

+0

기꺼이 도와 드리겠습니다. –

관련 문제