Bonjour,
Voila je rencontre un petit problème avec mon code.
j'ai créé un service validator
class CodeValidator extends ConstraintValidator
{
private $requestStack;
private $em;
// Les arguments déclarés dans la définition du service arrivent au constructeur
// On doit les enregistrer dans l'objet pour pouvoir s'en resservir dans la méthode validate()
public function __construct(RequestStack $requestStack, EntityManagerInterface $em)
{
$this->requestStack = $requestStack;
$this->em = $em;
}
/**
* Checks if the passed value is valid.
*
* @param mixed $value The value that should be validated
* @param Constraint $constraint The constraint for the validation
*/
public function validate($value, Constraint $constraint)
{
$request = $this->requestStack->getCurrentRequest();
$token = $request->attributes->get('token');
$user = $this->em
->getRepository('UserBundle:User')
->findOneBy(array('confirmationToken'=>$token));
$code = $user->getPasswordTmp();
if($value != $code)
$this->context->buildViolation($constraint->message)
->addViolation();
}
}
dans mon controleur je passe a validate les parametre
voici le code de la contante:
use Symfony\Component\Validator\Constraint;
class Code extends Constraint
{
public $message = "Votre code n'est pas valide.";
public function validatedBy()
{
return get_class($this).'Validator';
}
public function getTargets()
{
return self::CLASS_CONSTRAINT;
}
}
voici se que j'ai m'y pour le service:
app.form.validator.code:
class: UserBundle\Services\Validator\CodeValidator
arguments: [@request_stack, @doctrine.orm.entity_manager]
tags:
- { name: validator.constraint_validator, alias: app_form_validator_code }
et sa me retourne:
Fatal error: Call to a member function buildViolation() on null
merci pour votre aide