[TYPO3-mvc] extbase query - contains() and in()
Marc Bastian Heinrichs
typo3 at mbh-web.de
Mon Jan 23 10:54:49 CET 2012
Hi Christian,
Am 20.01.12 12:00, schrieb Christian Essl:
> I have a model with a field named "tags" which contains an array of values.
> Now I want to find all objects by a list of tags, but there is a problem with the provided in() and contains()-methods.
>
> contains() searches a property-array for ONE value.
> In() searches a property for an ARRAY of values.
>
> But what I want is to search a property-array for an ARRAY of values. (where only one of the searched values would have to be true)
> Arrays on both sides. But how do I accomplish that?
> I could not find any functions for this purpose.
>
> For example, this wouldn't work because contains() excepts a plain value for the operand:
>
> public function findByTags($tags)
> {
> // $tags = '1,2,3,4'
> $tags = explode(',', $tags);
> $query = $this->createQuery();
> $query->matching(
> $query->contains('tags', $tags)
> );
> return $query->execute();
> }
> But my approach would be very similar to contains(). I only need to find all objects which have at least _one_ of the tags from $tags.
build an OR ($query->logicalOr()) with a contains for every tag
Best
Marc Bastian
More information about the TYPO3-project-typo3v4mvc
mailing list