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.
