[TYPO3-mvc] extbase query - contains() and in()

Christian Essl essl at incert.at
Fri Jan 20 12:00:49 CET 2012


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.

Salute,
Christian



More information about the TYPO3-project-typo3v4mvc mailing list