Zum Inhalt springen

Query für Mehrfach-select ändern

Erstellt am 30. Dezember 2014 · 2 Antworten · letzte Antwort am 1. Januar 2015

Tags: Extbase, Kategorien, TYPO3 6.x, Frage

typo3_hp ·

Guten Abend!

Ich habe ein select Feld im TCA auf Mehrfach-select umgestellt.
Das passt auch soweit und wird in der DB nun richtig (kommagetrennt) gespeichert.

Was muss ich bei meinem Query hier ändern, dass er diese kommagetrennten Werte berücksichtigt?
Es geht um die Category

$query = $this->createQuery();
		
		# category and country selected
		if ($searchQuery->hasCategory() && $searchQuery->hasCountry()) {
			$constraints = $query->logicalAnd($query->equals('journeycategory', $searchQuery->getCategory()), $query->equals('journeycountry', $searchQuery->getCountry()));
		} else if ($searchQuery->hasCategory()) {
			# only category selected
			$constraints = $query->equals('journeycategory', $searchQuery->getCategory());
		} else if ($searchQuery->hasCountry()) {
			# only country selected
			$constraints = $query->equals('journeycountry', $searchQuery->getCountry());
		}

Vielen Dank und Grüße!

typo3_hp ·

niemand eine Idee?

Hab es schon mit

		$tags = explode(',', $searchQuery->getCategory());
		
		# category and country selected
		if ($searchQuery->hasCategory() && $searchQuery->hasCountry()) {
			#$constraints = $query->logicalAnd($query->equals('journeycategory', $searchQuery->getCategory()), $query->equals('journeycountry', $searchQuery->getCountry()));
			$constraints = $query->logicalAnd($query->contains('journeycountry', $tags), $query->equals('journeycountry', $searchQuery->getCountry()));

probiert. Funktioniert leider auch nicht.

Jemand eine Idee :-(

LG

freshman17 ·

Hi,

für eine kommaseparierte Liste nicht die equals sondern die in-Methode verwenden:

$categories = preg_split('/,/', $searchQuery->getCategory());
$query->in('journeycategory', $categories);

Gruß