[TYPO3-UG Denmark] Hvordan fungere extbase med bruger defineret validator´s og namespace?
Lasse Enø Jensen
lasse_enoe at hotmail.com
Sun Feb 8 09:28:20 CET 2015
Ahhh, fandt fejlen.
Syntaksten var god nok - kunne faktisk forkortes til:
/**
* @var string
* @validate StringLength(minimum=1,
maximum=255),\Webto\UserIntranet\Domain\Validator\FullNameValidator
*/
Fejlen lå i min FullNameValidator class som jeg fejlagtigt havde kommet til
at extende med:
TYPO3\CMS\Form\Validation\AbstractValidator
.. i stedet for:
TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator
Efter denne rettelse forsvandt min fejl (Damn you autocomplete).
For dem der læser min kode nedenfor så er det ikke rigtigt at returnere
false for at udløse en validerings fejl, isValid() skal returnere void skønt
det ikke udløser nogen fatel error at returnere false. For at udløse en
validerings fejl skal man i stedet for i funktionen isValid() tilføje en
fejl med $this->addError($message, $errorCode) hvor efter en validerings
fejl vil blive udløst.
-----Oprindelig meddelelse-----
Fra: typo3-ug-denmark-bounces at lists.typo3.org
[mailto:typo3-ug-denmark-bounces at lists.typo3.org] På vegne af Lasse Enø
Jensen
Sendt: 7. februar 2015 13:14
Til: 'TYPO3 Usergroup Denmark'
Emne: [TYPO3-UG Denmark] Hvordan fungere extbase med bruger defineret
validator´s og namespace?
Jeg har nu siddet i et par timer med en TYPO3 6.2.9 og arbejdet lidt med en
extbase model der extender fe_users.
Jeg sidder og prøver at lave lidt validering på de forskellige felter og det
virker også fint med de indbyggede validators.
Men dokumentationen omkring custom validators er lidt forældet (Uden
namespaces)
http://docs.typo3.org/typo3cms/ExtbaseFluidBook/9-CrosscuttingConcerns/2-val
idating-domain-objects.html#validators-for-checking-of-invariants
Jeg er ved at blive rimelig god til at gætte den nye syntakst men her må jeg
erkende at jeg har problemer
Jeg har lavet nedenstående extended fe_user model som er gemt her:
user_intranet/Classes/Domain/Model/FrontendUser.php
<?php
namespace Webto\UserIntranet\Domain\Model;
class FrontendUser extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUser {
/**
* @var string
* *@validate StringLength(minimum=1, maximum=255)*
* *@validate \Webto\UserIntranet\Domain\Validator\FullNameValidator*
*/
protected $name;
}
Min validator (FullName) har jeg gemt her:
user_intranet/Classes/Domain/Validator/FullNameValidator.php
<?php
namespace Webto\UserIntranet\Domain\Validator;
class FullNameValidator extends TYPO3\CMS\Form\Validation\AbstractValidator
{
/**
* Returns TRUE if submitted value validates according to rule
*
* @return boolean
* @see \TYPO3\CMS\Form\Validation\ValidatorInterface::isValid()
*/
public function isValid() {
// TODO: Add some functionality
return false;
}
}
Jeg får hele tiden smidt følgende fejl i hoved af TYPO3
#1241098027: Invalid validate annotation in
Webto\UserIntranet\Domain\Model\FrontendUser::name: Could not resolve class
name for validator "".
Jeg går ud fra at det er noget navngivning der ikke er korrekt eller
placeringen men kan ikke lige dreje den nogen der kan se fejlen eller pege
mig i den rigtige retning?
_______________________________________________
TYPO3-UG-Denmark mailing list
TYPO3-UG-Denmark at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-denmark
More information about the TYPO3-UG-Denmark
mailing list