Gedmo\ReferenceOne : propriété pas remplie

Mapping cross-ODM-ORM

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous  :)

Je tente d’utiliser la librairie atlantic18/doctrine-extensions pour effectuer des mappings entre mes parties ORM et ODM (MongoDB).

J’ai pu mettre mes relations, les événements sont bien capturés et les requêtes retournent les bonnes valeurs : si je mets des dumps($object) et , j’ai bien mes propriétés qui sont remplies.

Mais pour une raison qui m’échappe (même si j’ai quelques idées), dans mon objet "final", je ne récupère pas les valeurs. Voici un exemple simple :

1
2
3
4
5
6
7
8
<?php
class Account {
     /**
      * @Gedmo\ReferenceMany(type="document", class="Transaction", mappedBy="account")
      * @var \Gedmo\References\LazyCollection
      */
     private $transactions
}
Account.php
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
class Transaction {
    /**
     * @ODM\Field(type="int")
     */
    private $accountId;

    /**
     * @Gedmo\ReferenceOne(type="entity", class="Account", inversedBy="transactions", identifier="accountId")
     * @var Account
     */
    private $account;
}
Transaction.php

Dans ce cas, quand je charge un objet Transaction, je vois bien que la valeur est récupérée après la ligne 56 du ReferenceListener, mais quand j’utilise l’objet plus tard, la propriété est nulle.

Et si je charge un objet Account, le callback est bien renseigné dans l’objet LazyCollection (et avec les valeurs correctes), mais si dans un template j’aimerais boucler sur les transactions, il m’est dit que la propriété est nulle.

Le serveur fonctionne avec PHP 7, et au moment d’écrire ce message il faut alcaeus/mongo-php-adapter du fait que Doctrine ODM n’est pas prévu pour cette version de PHP, mais ça peut être un élément d’explication.

Est-ce que quelqu’un aurait déjà rencontré ce comportement et aurait une solution à me proposer ? Je pourrais évidemment prendre le temps de créer mes propres écouteurs d’événements, mais outre que ça me prendrait un certain temps, je ne pense pas que ça change grand-chose…

Merci  ^^

Edit

Je mettrai en résolu quand j’aurai compris pourquoi ou que j’aurai abandonné, mais après avoir redémarré l’ordinateur, étrangement, plus de souci…

Edit 2

Au final, c’est vite vu : le problème était lié à une autre propriété qui n’avait jamais été renseignée…  >_<

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte