Hi! I have the following structure of entities: Customer is the parent
class and it has two subclasses - Company and Person. My problem is that I
need to apply filters to specific fields in Company and Person, not just
Customer. As an example: Company is filtered by Company.name and Person is
filtered by Person.FirstName OR Person.LastName. As far as I can see there
is just no way to do this in Doctrine? The $targetEntity the filter gets
passed is always the root entity. In SqlWalker::generateFilterConditionSQL
the following snippet can be found:
if ($targetEntity->name !== $targetEntity->rootEntityName) {
return '';
}
Are there any specific reasons for this? The documentation states
In the case of joined or single table inheritance, you always get passed
> the ClassMetadata of the inheritance root. This is necessary to avoid edge
> cases that would break the SQL when applying the filters.
What are those edge cases? It seems pretty straight forward to me - "Is
this the class we want to filter? yes -> add (....) to the WHERE part".
Could I extend the SqlWalker to remove this limitation? I don't use much
inheritance so edge cases don't seem to be a problem for me? Or is there a
more elegant way to do this?
--
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 https://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/d/optout.