[Frage] Ajax Call Backend Dependency Injection not working (Controller empty)

  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    19. 10. 2015, 08:43

    Hallo zusammen,
    ich habe folgendes Problem. Ich rufen in einem BE Modul eine ControllerAction via Ajax um Inhalte nachzuladen.
    Der Ajax Call läuft soweit auch. Das Problem ist, dass alle im Controller geladenen Services/Repositories nicht nur leer sondern gar nicht vorhanden sind (NULL).

    Wenn ich diese über den ObjectManager direkt in der ControllerAction lade läuft alles.
    Ich habe mir auch den Ajax Dispatcher im pt_exbase angesehen und versucht Bootstrap zu initialisieren, leider ohne Erfolg.

    Was kann/muss ich tun damit alle DI welche im Controller definiert sind bei einem Ajax Call auch erstellt werden?

    Derzeit ist meine Action wie folgt aufgebaut:

    1. /**
    2. * action checkStatusAjaxAction
    3. *
    4. * @return void
    5. */
    6. public function checkStatusAjax($parameter = array(), \TYPO3\CMS\Core\Http\AjaxRequestHandler &$ajaxObj = NULL) {
    7.  
    8. $this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
    9. $this->resourceFactory = $this->objectManager->get('\TYPO3\CMS\Core\Resource\ResourceFactory');
    10.  
    11. $status = $this->checkSystemStatus();
    12. $ajaxTemplate = 'Administration/SystemStatus.html';
    13. $ajaxContent = $this->renderFileTemplate($ajaxTemplate, $status);
    14. $ajaxObj->addContent('newStatus', $ajaxContent);
    15.  
    16. }


  • 1
  • froemken froemken
    Jedi-Ratsmitglied
    0 x
    811 Beiträge
    1 Hilfreiche Beiträge
    07. 01. 2016, 11:24

    Ich hab das Gefühl, dass Du den Controller mit Hilfe von new oder makeInstance instanziierst. Das bringt nix. Denn diese beiden Möglichkeiten kümmern sich nicht automatisch um die injects. Geh in Deinen Ajax-Call, lade Dir den ObjectManager mit makeInstance und lade Dir dann den Controller mit dem ObjectManager, dann klappts auch mit den sauber eingebundenen Repositories

  • 1