Bonsoir,

Je veux utiliser l'objet : QueryBuilder mes il m'indique des messages d'erreur que la méthode 'getQuery' est pas défini ?

j'ai utiliser ORMQueryBuilder la aucune erreur mes je reçois ce message d'erreur quand j’exécute ma page.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Unable to find template "pages/home" (looked into: C:\Users\cdevl\code\monProjet/templates, C:\Users\cdevl\code\monProjet\vendor\symfony\twig-bridge/Resources/views/Form).
Avez vous une idée ?


PropertyRepository.php :

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
 
<?php
 
namespace App\Repository;
 
use App\Entity\Property;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\DBAL\Query\QueryBuilder;
use Doctrine\ORM\QueryBuilder as ORMQueryBuilder;
use Doctrine\Persistence\ManagerRegistry;
 
/**
 * @method Property|null find($id, $lockMode = null, $lockVersion = null)
 * @method Property|null findOneBy(array $criteria, array $orderBy = null)
 * @method Property[]    findAll()
 * @method Property[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
 */
class PropertyRepository extends ServiceEntityRepository
{
    public function __construct(ManagerRegistry $registry)
    {
        parent::__construct($registry, Property::class);
    }
 
    /**
     * @return Property[]
     */
    public function findAllVisible(): array
    {
        return $this->findVisibleQuery()
            ->where('p.sold = false')
            ->getQuery()
            ->getResult();
    }
 
    /**
     * @return Property[]
     */
    public function findLatest(): array
    {
        return $this->findVisibleQuery()
        ->where('p.sold = false')
        ->setMaxResults(4)
        ->getQuery()
        ->getResult();
    }
 
    private function findVisibleQuery(): ORMQueryBuilder 
     {
        return $this->createQueryBuilder('p')
        ->where('p.sold = false');
    }    
 
    // /**
    //  * @return Property[] Returns an array of Property objects
    //  */
    /*
    public function findByExampleField($value)
    {
        return $this->createQueryBuilder('p')
            ->andWhere('p.exampleField = :val')
            ->setParameter('val', $value)
            ->orderBy('p.id', 'ASC')
            ->setMaxResults(10)
            ->getQuery()
            ->getResult()
        ;
    }
    */
 
    /*
    public function findOneBySomeField($value): ?Property
    {
        return $this->createQueryBuilder('p')
            ->andWhere('p.exampleField = :val')
            ->setParameter('val', $value)
            ->getQuery()
            ->getOneOrNullResult()
        ;
    }
    */
}
HomeController.php :

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
23
24
25
26
27
 
<?php
namespace App\Controller;
 
use App\Repository\PropertyRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Twig\Environment;
 
class HomeController extends AbstractController
{
 
/**
 * @Route("/", name="home")
 * @param PropertyRepository $repository 
 * @return Response
*/
public function index(PropertyRepository $repository): Response
{
    $properties = $repository->findLatest();
    return $this->render('pages/home', [
        'properties' => $properties
    ]);
}
 
}