Wir haben einen Scheduler Task für Typo3 12 entwickelt, der einen $repository->findAll() Zugriff auf ein Repository macht.
Beim Ausführen des Tasks über die Kommandozeile erschien folgende Fehlermeldung:
In GetAttrNode.php line 110:
Unable to call method "getQueryParams" of non-object "request".Nach langem Suchen fanden wir das Problem: Es lag an einer TypoScript-Condition, die auf das request Object zugegriffen hat. Da es im CLI-Context des Schedulers kein request-Object gibt, wirft `/vendor/symfony/expression-language/Node/GetAttrNode.php` einen Fehler.
Lösung:
- Über das Backend-Modul „TypoScript“, Dropdown „Aktives TypoScript“ nach der Condition schauen, die
requestverwendet - Das TypoScript korrigieren, damit zunächst geprüft wird, ob
requestüberhaupt existiert bevor die MethodgetQueryParams()aufgerufen wird
// vorher: Hier ensteht das Problem!
[request.getQueryParams()['someVar'] == 1]
// TypoScript
[END]
// Lösung: Erst prüfen, ob request existiert
[request && (request.getQueryParams()['someVar'] == 1)]
// TypoScript
[END]Bitteschön. Schreib wenigstens mal „Danke“ in die Kommentare.