[Frage] Query für Mehrfach-select ändern TYPO3-Version: 6.1.1

  • typo3_hp typo3_hp
    Jedi-Meister
    0 x
    390 Beiträge
    0 Hilfreiche Beiträge
    30. 12. 2014, 17:07

    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

    1. $query = $this->createQuery();
    2.  
    3. # category and country selected
    4. if ($searchQuery->hasCategory() && $searchQuery->hasCountry()) {
    5. $constraints = $query->logicalAnd($query->equals('journeycategory', $searchQuery->getCategory()), $query->equals('journeycountry', $searchQuery->getCountry()));
    6. } else if ($searchQuery->hasCategory()) {
    7. # only category selected
    8. $constraints = $query->equals('journeycategory', $searchQuery->getCategory());
    9. } else if ($searchQuery->hasCountry()) {
    10. # only country selected
    11. $constraints = $query->equals('journeycountry', $searchQuery->getCountry());
    12. }

    Vielen Dank und Grüße!


  • 1
  • typo3_hp typo3_hp
    Jedi-Meister
    0 x
    390 Beiträge
    0 Hilfreiche Beiträge
    31. 12. 2014, 13:30

    niemand eine Idee?

    Hab es schon mit

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

    probiert. Funktioniert leider auch nicht.

    Jemand eine Idee :-(

    LG

  • freshman17 freshman1...
    Sternenflotten-Admiral
    0 x
    218 Beiträge
    2 Hilfreiche Beiträge
    01. 01. 2015, 12:47

    Hi,

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

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

    Gruß

  • 1