IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Doctrine2 PHP Discussion :

No mapping file found named inventaire.dcm.yml new Configuration


Sujet :

Doctrine2 PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Par défaut No mapping file found named inventaire.dcm.yml new Configuration
    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!

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    If you install the library in a Symfony2 application, you can add this in your config.yml [...]
    Si t'as juste du yml a poser pourquoi tu te fais chier avec toute cette config?

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Par défaut
    Si je ne met pas cette config, j'ai toujours une erreur sur ma requête DQL quand à la fin j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ->orderBy('DATE(i.dateConvoc)', 'ASC')
    J'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Syntax Error] line 0, col 384: Error: Expected end of string, got '('

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    L'auteur utilise du DQL pur, peux tu essayer?

    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query = 'SELECT RAND(), ROUND(123.45) 
            FROM ...
        ';
    $em->createQuery($query);

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Par défaut
    C'est justement le test que j'ai fait.
    Ça ne fonctionne pas et je sais pourquoi.
    L'intégration de la librairie fait que doctrine reconnait bien les fonctions date et date_format, néanmoins je ne peux pas les utiliser dans un order by, uniquement dans le select.

    Par conséquent, cela me pose un nouveau problème.
    Je récupère mes résultats sous forme d'un tableau indexé avec les id de mon entités et le fait de rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE(i.dateConvoc) as dateonly
    dans mon select, fait que mon tableau simple devient un tableau à 2 dimensions avec mon entité indexé à 0, et mon champ date indexé à "dateonly".

    En gros, j'ai ceci :

    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
    Array
    (
        [25761] => Array
            (
                [0] => Array
                    (
                        [id] => 25761
                        [description] => Inventaire
                        [mission] => Inventaire  
                        ....
                    )
     
                [dateonly] => 2014-03-17
            )
    .....
    et avant j'avais et je voudrais celà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Array
    (
        [25630] => Array
            (
                [id] => 25630
                [description] => Inventaire
                [mission] => Inventaire
     
            )
    .........
    Y a-t-il quelque chose pour contourner ce comportement ?
    Le champ en lui même, je n'ai pas besoin de le récupérer mais je suis obligée de le mettre dans le select pour utiliser le order by dessus.

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/10/2006, 22h49
  2. hibernate & eclipse(Hibernate Mapping File)
    Par coquero dans le forum Hibernate
    Réponses: 5
    Dernier message: 06/07/2006, 11h48
  3. No <db.h> include file found
    Par trattos dans le forum Linux
    Réponses: 4
    Dernier message: 20/03/2006, 16h54
  4. unformatted on disk for file ...... found 8
    Par mika dans le forum Débuter
    Réponses: 4
    Dernier message: 21/12/2004, 11h05
  5. Probleme de perf avec File::Find::name;
    Par Ludo167 dans le forum Modules
    Réponses: 6
    Dernier message: 14/07/2004, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo