使用State Processor时API Platform验证失效问题咨询
API Platform自定义State Processor时验证机制失效的问题咨询
API Platform自带State Processor功能,但自定义实现该功能时,默认的验证机制会失效,想咨询这是否属于API Platform的潜在问题,或是可优化的方向?
以下是我的自定义处理器代码:
public function process(mixed $data, Operation $operation, array $uriVariables = [], array $context = []) { if ($operation instanceof Post && $data->getPlainPassword()) { $hashedPassword = $this->passwordHasher->hashPassword( $data, $data->getPlainPassword() ); $data->setPassword($hashedPassword); $data->eraseCredentials(); } return $this->processor->process($data, $operation, $uriVariables, $context); }
我的User实体添加了#[UniqueEntity('email')]唯一约束,如果不在处理器中手动调用Symfony Validator,会直接抛出数据库重复条目异常:
An exception occurred while executing a query: Duplicate entry 'new_user@gtest.com' for key 'user.UNIQ_8D93D649E7927C74'
目前我只能通过在处理器中手动添加验证逻辑来解决这个问题:
$errors = $this->validator->validate($data); if (count($errors) > 0) { throw new ValidationException($errors); }
内容的提问来源于stack exchange,提问作者Deadpool
相关产品推荐
相关产品推荐

