[Flow] Fwd: Doctrine/Query notContains() for Collections
Georg Tiefenbrunn
georg.tiefenbrunn at gmail.com
Fri Feb 14 17:06:37 CET 2014
Hi Flow Gurus!
I'm trying to get to like TYPO3 Flow as I do love TYPO3 CMS but I'm
stuck at many-to-many relations.
In my repository I created a custom findByXy() method to do some
filtering. I use $query = $this->createQuery(); and not DQL to return
a \TYPO3\Flow\Persistence\QueryResultProxy to be able to use
pagination widget.
Let's assume I have a many-to-many relation between users and groups.
After looking at the source I finally found the way to find all groups
a user is assigned to:
$query->contains('groups', $group);
But I can't find a way to query for all groups, a user isn't assigned
to. It would be very nice to have
$query->notContains('groups', $group);
The contains() function is defined in [1]
public function contains($propertyName, $operand) {
return '(' . $this->getParamNeedle($operand) . ' MEMBER OF ' .
$this->getPropertyNameWithAlias($propertyName) . ')';
}
So I tried a dirty hack and added notContains() and got what I was looking for.
public function notContains($propertyName, $operand) {
return '(' . $this->getParamNeedle($operand) . ' NOT MEMBER OF ' .
$this->getPropertyNameWithAlias($propertyName) . ')';
}
After looking at all the dependencies I got lost and decided to ask
for help. Is there an easy way to use a custom/modified Query.php
without implementing the whole Query/QueryResult/Repository/etc.
stuff? Or is notContains() implemented somewhere else I'm simply too
blind to see?
I wanted to ask before creating a silly feature request at the forge.
Thanks for any help you may be able to share!
Georg
[1] https://git.typo3.org/Packages/TYPO3.Flow.git/blob/HEAD:/Classes/TYPO3/Flow/Persistence/Doctrine/Query.php#l417
More information about the Flow
mailing list