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
request
verwendet - 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.