Bonjour,

J'ai créer un repository pour ma classe User, le probleme c'est que j'obtient une erreur :
Undefined method 'getDoctrine'. The method name must start with either findBy or findOneBy!
et voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
//dans le controlleur
$em = $this->getDoctrine()->getEntityManager();
 
$exist = $em->getRepository('Fruityware\FrontendBundle\Entity\User');            
 
var_dump($exist->isExist());
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
//le repository
class UserRepository extends EntityRepository
{
    public function isExist()
    {
        $repository = $this->getDoctrine()->getRepository('FruitywareFrontendBundle:User');
        $query = $repository->createQueryBuilder('u')
                            ->where('u.login = :login AND u.password = :password')
                            ->setParameters(array("login" => $form["login"]->getData(), "password" => $form["password"]->getData()))
                             ->getQuery();
 
        $u = $query->getResult();
 
        if(count($u) > 0)
        {
            return true;
        }
 
        return false;
    }
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
//et le cod yml
Fruityware\FrontendBundle\Entity\User:
    type: entity
    table: User
    repositoryClass: Fruityware\FrontendBundle\Entity\Repository\UserRepository
    fields:
        id:
            type: integer
            id: true
            generator:
                strategy: AUTO
        login:
            type: string
            length: 255
        password:
            type: string
            length: 255
    lifecycleCallbacks: {  }
Merci de votre aide !