If you have a OneToMany relation from your ModulesConfig to your Modules, 
do you mean: every Module has 1 ModuleConfig and a ModuleConfig can be part 
of multiple Modules? Because then the $modules variable in ModulesConfig is 
a collection. You now have it the other way around: you define a 
$ModulesConfig collection in your Modules entity. Is there a $ModulesConfig 
property (starting with a capital letter) in your Modules-entity? 

There are some conventions that are not obligatory, but I would strongly 
advice you to keep to it (or otherwise: be aware of what standard you 
follow):

   - Class names shoud start with an uppercase character (also see PSR-1: 
   
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md)
   - I always start properties (attributes) with a lowercase character, but 
   there is no general recommendation for that.
   - ORM-specific: *A definition of an Entity is singular*. In your case: 
   you would have a Module entity, not Module*s*. You define how one (1) 
   Module-entity looks like.
   - *a collection is something in plural*. If you have a collection of 
   Module-entities, I'd give it the name $modules. If you would have a 
   collection of ModuleConfig-entities I'd give it the name $moduleConfigs. 
   - I personally have my table names in plural (if I'm not using a legacy 
   database). Giving an entity a plural name is probably some reminiscent of 
   thinking in a Doctrine1 / Active Record / Tables way of doing things.

The difficult thing with ORM is that it is in between the relational 
database and the domain objects and hence you have to deal with two 
different paradigms. Associations like OneToMany are stemming from the 
Relational paradigm, while having an attribute that is a collection of 
other entities is thinking in the Object paradigm. But those two are only 
together in the mapping layer. In the rest of your application you can just 
work with objects. 

So, please review your model, give it* proper names (entities in singular, 
collections in plural)* and then apply your mapping. That will solve your 
problem. BTW: if your "blah" is not printed, then the constructor of your 
Modules entity is not called and hence no Modules-entity was instantiated.

*- Herman*

On Friday, 7 February 2014 02:19:24 UTC+1, Parsifal wrote:
>
> I did set my Modules entity as OneToMany with my ModulesConfig entity and 
> in my Modules entity I did set the constructor as below since this is 
> OneToMany.
> I see both with and without this constructor it works fine, I even did use
> var_dump($this->ModulesConfig); and also print("blah") within constructor 
> and nothing printed, am I doing some mistake in my class below? (However I 
> don't get any error and it still works but curious to know.)
> class Modules {
>                public function __construct() {
>                        $this->ModulesConfig = new ArrayCollection();
>                        print("blah");
>                }
>                public static function loadMetadata(ClassMetadata 
> $metadata) {
>
>  
>

-- 
You received this message because you are subscribed to the Google Groups 
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to