[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