Bonjour,

je bloque sur un problème depuis plusieurs jours maintenant et je n'ai plus aucune inspiration.
Avec doctrine 2, impossible d'utiliser les fonctions telles que DATE, DATE_FORMAT,... car elles sont propre à MySQL.
Mais aujourd'hui, j'ai vraiment besoin de cette fonction et j'ai trouvé une solution qui permet de déclarer cette fonction et de la faire connaitre à doctrine.
Voici la source de ce que j'avance :
https://github.com/mapado/MysqlDoctr...ster/README.md

J'ai donc fait ce qui était dit dans la documentation, à savoir :
- mettre à jour mon composer.json et lancer la commande php composer.phar update (celle-ci s'est exécuté avec succès)
- modifier mon fichier app/config/config.yml tel que décrit
- ça se corse quand je dois créer une nouvelle configuration doctrine qui requiert pas mal de propriété :

Je fonctionne avec le format YML, mes fichiers de mapping xxxxxxx.orm.yml sont donc dans le répertoire Blabla/MonProjetBundle/Resources/config/doctrine/.
Je dois faire ma requête dans mon fichier Blabla/MonProjetBundle/Entity/InventaireRepository.php
Voici le code que j'ai :

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
 
// Configuration
$config = new \Doctrine\ORM\Configuration();
// Proxies
$config->setProxyDir("%kernel.cache_dir%/doctrine/orm/Proxies");
$config->setProxyNamespace('Proxies');
 
$config->setAutoGenerateProxyClasses(($env == "dev"));
// Driver
$driverImpl = new \Doctrine\ORM\Mapping\Driver\YamlDriver(__DIR__."../Resources/config/doctrine");
$config->setMetadataDriverImpl($driverImpl);
$config->setEntityNamespaces(array('BlablaMonProjetBundle' => 'Blabla\MonProjetBundle\Entity'));
$config->addCustomStringFunction('date', 'Mapado\MysqlDoctrineFunctions\DQL\MysqlDate');
$config->addCustomStringFunction('date_format', 'Mapado\MysqlDoctrineFunctions\DQL\MysqlDateFormat');
// Caching Configuration
if ($env == "dev") {
    $cache = new \Doctrine\Common\Cache\ArrayCache();
} else {
    $cache = new \Doctrine\Common\Cache\ApcCache();
}
 
$config->setMetadataCacheImpl($cache);
$config->setQueryCacheImpl($cache);
 
$connectionOptions = array(
   'driver' => 'pdo_mysql',
   'dbname' => '...',
   'user' => '...',
   'password' => '...',
   'host' => '127.0.0.1');
 
 $my_em = $this->_em->create($connectionOptions, $config);
Suite à ça, j'ai l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
No mapping file found named 'Blabla.MonProjetBundle.Entity.Inventaire.dcm.yml' for class 'Blabla\MonProjetBundle\Entity\Inventaire'.
Avez-vous une idée?
Je pense que j'ai fait quelques erreurs dans la déclaration de la configuration (déjà au niveau du proxy je pense) mais j'ai besoin d'un coup de main !
Merci d'avance!