[TYPO3-german] Extbase Service einbinden

Andreas Reimund andreas.reimund at online.de
Sat Nov 26 21:24:24 CET 2016


Vielen Dank Alex,

dies scheint der richtige Tipp gewesen zu sein. Nun funktioniert es.

Gruß Andreas

Am 26.11.2016 um 19:37 schrieb Alexander Künzl:
> Hallo Andreas,
>
> eine Möglichkeit: Deaktiviere die Extension einmal und aktiviere sie 
> wieder, sonst findet TYPO3 möglicherweise die neu erstellte 
> Service-Klasse nicht.
>
> Viele Grüße
>
> Alex
>
> Am 26.11.2016 um 19:08 schrieb Andreas Reimund:
>> Guten Tag,
>>
>> ich möchte über einen Service ein paar Funktionen einbinden, um vor dem
>> Ausführen einiger Funktionen zu prüfen ob der Benutzer berächtigt ist
>> daszu.
>> Hierzu habe ich einen Service erstellt aber es klappt irgendwie nicht.
>> Wenn ich die Funktion direkt in den Controller schreibe, macht sie was
>> sie soll. Wenn ich die gleich Funktion über den Service einbinde kommt
>> folgender Fehler:
>>
>> Call to a member function hasLoggedInFrontendUser() on a non-object in
>>
>> Im folgenden ein Ausschnitt aus dem Controller und dem Service:
>>
>> Classes/Service/AccessControlService.php
>>
>> <?php
>> namespace AndreasReimund\Fsanmeldung\Service;
>>
>> class AccessControlService implements 
>> \TYPO3\CMS\Core\SingletonInterface {
>>     public function hasLoggedInFrontendUser() {
>>         return $GLOBALS['TSFE']->loginUser === 1 ? TRUE : FALSE;
>>     }
>> }
>>
>> Classes/Controller/ElternController.php
>>
>> <?php
>> namespace AndreasReimund\Fsanmeldung\Controller;
>> class ElternController extends
>> \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
>>     /**
>>      * elternRepository
>>      *
>>      * @var 
>> \AndreasReimund\Fsanmeldung\Domain\Repository\ElternRepository
>>      * @inject
>>      */
>>     protected $elternRepository;
>>     /**
>>      * @var \AndreasReimund\Fsanmeldung\Service\AccessControlService
>>      * @inject
>>     */
>>     protected $accessControlService;
>>     /**
>>      * Eltern Uebersicht
>>      *
>>      * @param \AndreasReimund\Fsanmeldung\Domain\Model\Eltern $eltern
>>      * @param \AndreasReimund\Fsanmeldung\Domain\Model\Kind $kind
>>      * @return void
>>      */
>>     public function
>> showAction(\AndreasReimund\Fsanmeldung\Domain\Model\Eltern $eltern) {
>>
>>         if ($this->accessControlService->hasLoggedInFrontendUser() ) {
>>                 $this->addFlashMessage('Sie sind berachtigt', '',
>> \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
>>                 $this->redirect('confirm',NULL,NULL,
>> array('eltern'=>$eltern));
>>         }
>>             else
>>             {
>>                 if($eltern->getReady()!=1){
>>         $eltern->setCalculation($eltern->getKind());
>> $this->objectManager->get('AndreasReimund\\Fsanmeldung\\Domain\\Repository\\ElternRepository')->update($eltern); 
>>
>>
>>
>>             $this->view->assign('eltern', $eltern);
>>
>>             }
>>             else
>>             {
>>                 $this->addFlashMessage('Anmeldung wurde bereits
>> abgeschlossen. Aenderungen sind nicht mehr moeglich!', '',
>> \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
>>                 $this->redirect('confirm',NULL,NULL,
>> array('eltern'=>$eltern));
>>             }
>>
>>     }}
>>
>> Ich komme nicht drauf warum er scheinbar keinen zugriff auf die Funktion
>> bekommt.
>>
>> Gruß Andreas
>> _______________________________________________
>> TYPO3-german mailing list
>> TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german



More information about the TYPO3-german mailing list