Lære to, udefinert eier metoden findOneBy *

stemmer
6

Jeg har en merkelig sak. Her er feilmeldingen:

Ring til udefinert metode MyProject\BlogBundle\Entity\Blog::findOneById()

Jeg har setup kartleggingen ble foretaket klassen opprettet ved hjelp av konsollen, og jeg har oppdatert skjema i databasen. Hva kan være årsaken til dette problemet?

Jeg bruker symfony2. Her er linjen:

$blogRepo = $this->get('myproject.blog.repository.blog');  
$blog = $blogRepo->findOneById($id);  

Noen ideer?

Publisert på 24/03/2011 klokken 21:32
kilden bruker
På andre språk...                            


3 svar

stemmer
8

findOneById finnes ikke, prøv

$ BlogRepo-> findOneBy (array ( 'id' => $ id));

hvor 'ID' er et eksisterende felt i Entity.

Du kan sjekke Lære klasse dokumentasjon her: EntityRepository

Edit: ser ut som findOneById eksisterer så lenge foretaket har et felt "Id". Sjekk docs . Thx til Ryall for å peke det ut

Svarte 30/03/2011 kl. 10:27
kilden bruker

stemmer
5

Hva er tjenesten definisjonen av myproject.blog.repository.blog? Det ser ut som du kartlegge det til MyProject\BlogBundle\Entity\Blogmens det egentlig skal være MyProject\BlogBundle\Entity\BlogRepository.

I stedet for å lage din egen Repository klasse kan du også ha en laget på sparket av EntityManager.

$user = $em->getRepository('MyProject\Domain\User')->find($id);

Eller enda kortere:

$user = $em->find('MyProject\Domain\User', $id);

Tatt fra den Doctrine2 ORM dokumentasjon .

Svarte 25/03/2011 kl. 09:38
kilden bruker

stemmer
0

Prøv dette

$blogRepo = $this->getRepository('myproject.blog.repository.blog');  
$blog = $blogRepo->findOneById($id);  

getRepository

Svarte 28/06/2017 kl. 19:17
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more