pb buildViolation() on null

Par nlefebvre, il y a 9 ans


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

1 réponse

Elyanor, il y a 9 ans

Tu fais appel au context sans le passer dans le service ;-)