Actually, I want to have all active profiles of active networks of a
certain account. So I want to ask the Account to give all these items, not
a repository...

Gerard


2014-03-30 13:57 GMT+02:00 Marco Pivetta <[email protected]>:

> Well, it also makes sense that you cannot access the persistence layer
> from within your entities. It is not up to your entities to "load"
> associations.
> The associations are there, you don't assume that you need any database to
> access them, you just need to traverse them.
>
> Otherwise, if you work with the assumption that there is a persistence
> layer, then you code the fetch logic into a repository, which is the object
> responsible for loading your entities.
>
> Marco Pivetta
>
> http://twitter.com/Ocramius
>
> http://ocramius.github.com/
>
>
> On 30 March 2014 13:53, Gerard Brouwer <[email protected]> wrote:
>
>> Hi Marco,
>>
>> Yes that is wat I meant. I already thought so and setted up a custom
>> repository. But you can't access it from the Entity right? So you have to
>> call it in a different way in the Controller, which I don't like.
>>
>> Gerard
>>
>>
>> 2014-03-30 13:45 GMT+02:00 Marco Pivetta <[email protected]>:
>>
>>> If you mean that your property (through which you wanted to filter) is
>>> not directly defined on the items you are filtering, then Criteria is not
>>> sufficient. In order to filter data through different associations, you
>>> either iterate and run checks, or you use callback criteria expressions
>>> (not lazy, not happening at SQL level) or you use DQL in a custom
>>> repository.
>>>
>>> Marco Pivetta
>>>
>>> http://twitter.com/Ocramius
>>>
>>> http://ocramius.github.com/
>>>
>>>
>>> On 30 March 2014 11:02, Gerard Brouwer <[email protected]>wrote:
>>>
>>>> Marco,
>>>>
>>>> Thanks, this seems to work. I saw something about filtering but I
>>>> assumed it was applied after fetching the data.
>>>>
>>>> Ok, what if the Profile is of a Network, which needs to be active too
>>>> in this case (withing getActiveProfiles method of Account)?
>>>>
>>>> Gerard
>>>>
>>>>
>>>> Op zaterdag 29 maart 2014 00:07:07 UTC+1 schreef Marco Pivetta:
>>>>>
>>>>> You can filter collections via the criteria api:
>>>>>
>>>>> public function getActiveProfiles()
>>>>> {
>>>>>     $criteria = new \Doctrine\Common\Collections\Criteria();
>>>>>      $criteria->andWhere($criteria->expr()->eq('active', true);
>>>>>
>>>>>     return $this->profiles->matching($criteria);
>>>>> }
>>>>>
>>>>> See also http://doctrine-orm.readthedocs.org/en/latest/
>>>>> reference/working-with-associations.html#filtering-collections
>>>>>
>>>>> Marco Pivetta
>>>>>
>>>>> http://twitter.com/Ocramius
>>>>>
>>>>> http://ocramius.github.com/
>>>>>
>>>>>
>>>>> On 28 March 2014 22:48, Gerard Brouwer <[email protected]> wrote:
>>>>>
>>>>>>  Hi,
>>>>>>
>>>>>>
>>>>>> I'm starting with Doctrine 2 + Zend Framework 2.
>>>>>> I have an Entity Account which has a OneToMany relationship to
>>>>>> Profile. If I call getProfiles on Account, I only want Profile instances
>>>>>> with the column 'active' = 'yes'. Of course, I want it to call on the
>>>>>> Account Entity instance (getProfiles() or getActiveProfiles()).
>>>>>>
>>>>>> How to do this in the best way? I didn't find a solution for this (no
>>>>>> annotations, no possibility to access the QueryBuilder within the 
>>>>>> entity).
>>>>>>
>>>>>> Gerard
>>>>>>
>>>>>> --
>>>>>> 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/d/optout.
>>>>>>
>>>>>
>>>>>  --
>>>> 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/d/optout.
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "doctrine-user" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/doctrine-user/Cx42o5Tduws/unsubscribe.
>>> To unsubscribe from this group and all its topics, 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/d/optout.
>>>
>>
>>  --
>> 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/d/optout.
>>
>
>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "doctrine-user" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/doctrine-user/Cx42o5Tduws/unsubscribe.
> To unsubscribe from this group and all its topics, 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/d/optout.
>

-- 
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/d/optout.

Reply via email to