First get the entities defined well. If the errror stays then post the 
whole code somewhere in a gist. The problem is now unclear to me.

On Friday, 7 February 2014 09:18:48 UTC+1, Parsifal wrote:
>
> Please read previous answer. I have to add however print("blah") in 
> constructor doesnt work, meaning the constructor is not initiated, but 
> getArrayResult returns expected result but getResult gives error! Why? 
> Isn't it because of constructor?
>  در 2014 2 7 08:30، "Nima Sadjadi" <[email protected] <javascript:>> نوشت:
>
>> As about recommendation in second part I highly appreciate them and will 
>> do so from now on but as about first part: No, I need OneToMany from 
>> Modules to ModulesConfig and the constructor also is in Modules. If so, 
>> then how the variables and constructor should be?
>> در 2014 2 7 08:17، "Herman Peeren" <[email protected] <javascript:>> 
>> نوشت:
>>
>>> 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] <javascript:>.
>>> To post to this group, send email to [email protected]<javascript:>
>>> .
>>> Visit this group at http://groups.google.com/group/doctrine-user.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>> 

-- 
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