You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 09:00:01