Bonjour/Bonsoir,
je suis en train de me former a Symfony 2 et jusque là tout allait bien. Je viens d'attaquer la partie sur les validateurs personnels et j'essaie actuellement d'ajouter validateur au services.
Voici la définition du service:
td_platform.validator.antiflood:
class: TD\PlatformBundle\Validator\AntifloodValidator
arguments: [@request_stack, @doctrine.orm.entity_manager]
tags:
- { name: validator.constraint_validator, alias: td_platform_antiflood }
et mon validateur:
namespace TD\PlatformBundle\Validator;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class AntifloodValidator extends ConstraintValidator
{
private $requestStack;
private $em;
public function __construct(RequestStack $requestStack, EntityManagerInterface $em)
{
$this->requestStack = $requestStack;
$this->em = $em;
}
public function validate($value, Constraint $constraint)
{
// ...
}
}
Or lors du processus de validation j'obtiens cette erreur:
Catchable Fatal Error: Argument 1 passed to TD\PlatformBundle\Validator\AntifloodValidator::__construct() must be an instance of Symfony\Component\HttpFoundation\RequestStack, none given
Je ne vois pas où est mon erreur, si quelqu'un pouvait m'expliquer ce serait vraiment cool :).
Merci d'avance pour votre temps !
Bonjour.
Lorsque l'on créé son propre validateur, on créé deux classes :
J'imagine que c'est bien ceci que tu as mis en place ?
Peux-tu donner le code de ta classe qui extend Symfony\Component\Validator\Constraint , afin que je puisse voir la définition de ta méthode validatedBy ?
Bonjour,
c'est bien comme ça que j'ai procédé, voici ma Contrainte
namespace TD\PlatformBundle\Validator;
use Symfony\Component\Validator\Constraint;
/**
* @Annotation
*/
class Antiflood extends Constraint
{
public $message = "vous ne pouvez pas flooder!";
public function validateBy()
{
return 'td_platform_antiflood';
}
}
J'ai fait comme dans la documentation mais je n'ai pas pu ajouter de contrainte encore, comme jusque la ça ne fonctionne pas ^^'.
Problème de cache du dev (ou de prod) ? Supprime les fichiers, sait-on jamais.
Je ne vois pas sinon d'où ça peut venir :/