Hallo,
wie kann man es am einfachsten bewerkstelligen in einem Query auch String Functions (REPLACE, etc.pp, http://dev.mysql.com/doc/refman/5.1/en/string-functions.html) einzubinden. Über den Tx_Extbase_Persistence_Query sehe ich keine Möglichkeit. Um die Sortierung weiter beeinflussen zu können bin ich schon über Tx_Extbase_Persistence_Storage_Typo3DbBackend gegangen.
Danke und Gruß
Armin
#105657
siehe dort meine erste Antwort.
Hallo,
Danke für deine Antwort.
Den Weg über statement($sql) bin ich schon gegangen.
Meine Schritte im Groben:
$backend = $this->objectManager->get('Tx_Extbase_Persistence_Storage_Typo3DbBackend');
$parameters = array();
$statementParts = $backend->parseQuery($query, $parameters);
$statementParts['additionalWhereClause']['55'] = " REPLACE(tx_iwproduct_domain_model_product.artikelnr, '-', '') LIKE '%vv9%'";
$statement = $backend->buildQuery($statementParts);
$query->statement($statement, $parameters);
Das klappt auch, mir ist nun ein komischer Fehler aufgefallen. Wenn ich mit count() Abfrage wieviele Datensätze vorhanden sind wird eine Zahl (z.B. 51) ausgegeben, obwohl 0 zurückgegeben werden müsste! Die f:for om ViewHelper wird auch nicht ausgeführt!
Binde ich nun das zusätzlich ein:
$productAllExecute = $query->execute();
foreach ($productAllExecute as $productAllExecuteValue) {
}
wird mir bei count() auch 0 zurückgegeben wenn 0 vorhanden ist!
Armin