hallo,
ich stehe vor einem problem mit einer suchabfrage. ich habe eine extension mit einer m:n relation. es geht dabei um termine, die an mehreren tagen stattfinden. die jeweiligen tage sind als relation in einer eigenen tabelle. im suchformular kann man dann ein datum eingeben und als ergebnis sollten dann der terminname und das datum dazu ausgegeben werden.
funktionier soweit prima, nur dass ich bei der abfrage auch alle tage erhalte die zum termin gehören. beispiel:
der termin "fußball schauen" hat einen eintrag für 5. jänner, 7. feburar und 9. märz
der termin "kino gehen" hat einen eintrag für 7. jänner und 9 märz.
gebe ich nun in die suchmaske für datum von "1. jänner bis 20. jänner" ein kommen beide termin UND alle tage dazu. die liste sieht dann so aus:
- fußball schauen am 5. jänner, 7. feburar und 9. märz
- kino gehen am 7. jänner und 9 märz
gebe ich "2. bis 10. februar" ein kommt korrekter weise nur der termin fußball schauen" aber es spuckt mir auch wieder alle termine aus, d.h. der 5. jänner und der 9. märz sind auch dabei:
- fußball schauen am 5. jänner, 7. feburar und 9. märz
die datenbankabfrage sieht so aus:
$constraints[] = $query->greaterThanOrEqual('termindaten.datumvon', $datumvons);
$constraints[] = $query->lessThanOrEqual('termindaten.datumbis', $datumbiss);
$query->matching($query->logicalAnd($constraints))->setOrderings(array('sorting' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));
$terminKalenders = $query->execute();
meine logik sagt mir, dass bei der datenbankabfrage eigentlich nur der jeweilige termin vom dem gesuchten monat ausgegeben werden sollte. warum also gibt extbase trotzdem alle datum aus, auch wenn sie gar nicht in der größer als und kleiner als liegen?
bzw. wie kann ich die abfrage einstellen, dass nur der jeweilige termin mit dem 1 datum aus der suchabfrage kommt?
danke für eure hilfe
lg
npre