Hallo Zusammen,
ich versuche die MYSQL Funktion Substring zu verwenden, hoffe auf einen Tipp was ich falsch mache.
Fehler: Call to undefined method TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder::substring()
Wie folgt versuche ich die Abfrage in der Extension aufzurufen. Wenn ich die Zeile mit dem Substring auskommentiere funktioniert alles.
<?php
namespace xxxx\Pferdedatenbank\Controller;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\Database\Connection;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Database\Query\QueryBuilder;
class App
{
function getPferdeListe()
{
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('tx_pferdedatenbank_domain_model_pferde');
$fields = array();
$fields[] = 'tx_pferdedatenbank_domain_model_pferde.uid';
$fields[] = 'tx_pferdedatenbank_domain_model_pferde.pferd_name AS b';
// Hier ist der Wurm drin:
$fields[] = $queryBuilder->expr()->substring('tx_pferdedatenbank_domain_model_pferde.pferd_name',0,1).' AS bb';
$queryBuilder
->select(...$fields)
->from('tx_pferdedatenbank_domain_model_pferde')
->setMaxResults(100)
;
$statement = $queryBuilder->execute();
$all = array();
while ($row = $statement->fetch())
{
$all[] = $row;
}
return $all;
}
}