[TYPO3-mvc] Using repositories in validators

Matthew Colton mat.colton at web-xs.de
Sat Dec 20 15:09:04 CET 2014


Hi Till,
thanks, works like a charm! I should have thought of that myself...
-- 
Cheers
Matthew

Am 19.12.2014 um 19:16 schrieb g4-lisz at tonarchiv.ch:
> Hi Matthew
>
> I don't know if this helps, never tested it myself in a validator:
>
> Maybe you should use the ObjectManager, like:
>
>             $objectManager =
> \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
>             $bemerkung =   
> $this->objectManager->get('NS\Extname\Domain\Repository\ReservationRepository');
>
> And: I dont't use double backslash in my methods for the object path...
>
> Cheers,
> Till
>
> On 12/19/2014 05:40 PM, Matthew Colton wrote:
>> Hi,
>> I'm working on a system that includes ticketing.
>>
>> One problem I ran into is that the system has to check/validate if
>> enough tickets are left to be able to complete the reservation process.
>>
>> So that's why I'm trying to use repositories in a validator. Injecting
>> repositories doesn't seem to work in validators. If I
>>
>>   /**
>>    * Reservation repository
>>    *
>>    * @var \NS\Extname\Domain\Repository\ReservationRepository
>>    * @inject
>>    */
>>   protected $reservationRepository;
>>
>> and then try to use
>>
>> $this->reservationRepository->amountOfReserverationsOfEventDate();
>>
>> it results in the following PHP error:
>>
>> Fatal error: Call to a member function
>> amountOfReserverationsOfEventDate() on a non-object in
>> /var/www/laks/hessen-szene.de/cms/typo3conf/ext/laks/Classes/Validation/Validator/EnoughTicketsAvailableValidator.php
>> on line 69
>>
>> If I try to make an instance manually via
>>
>> $this->reservationRepository =
>> \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('NS\\Extname\\Domain\\Repository\\ReservationRepository');
>>
>> it results in the following exception:
>>
>> Argument 1 passed to
>> TYPO3\CMS\Extbase\Persistence\Repository::__construct() must implement
>> interface TYPO3\CMS\Extbase\Object\ObjectManagerInterface, none given,
>> called in
>> /var/www/typo3/typo3_src-6.2.9/typo3/sysext/core/Classes/Utility/GeneralUtility.php
>> on line 4431 and defined in
>> /var/www/typo3/typo3_src-6.2.9/typo3/sysext/extbase/Classes/Persistence/Repository.php
>> line 75
>>
>> So what would be the correct approach?
>>
>> Thanks in advance!
> _______________________________________________
> TYPO3-project-typo3v4mvc mailing list
> TYPO3-project-typo3v4mvc at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-typo3v4mvc
>




More information about the TYPO3-project-typo3v4mvc mailing list