4Manuals

  • PDF Cloud HOME

定制操作控制器中的验证 Download

    Symfony 3.4安装新软件包时发生冲突 如何配置Docker DOCROOT以运行symfony 尝试使用Struts2.5(服务器端)和Emberjs(客户端)构建CRUD应用程序时出错 Symfony / API平台无法达到目标 带有easyadmin的VichUploaderBundle集合无数据库插入 Spring Boot发布休息呼叫“缺少所需的请求正文” 是否可以将未选择的数据直接发送到控制器? symfony路由器在所有语言环境中都匹配url 添加Powershell作业以从分页的rest API并行检索 想要从MySQL中的2个不同表中获取数据

我正在尝试仅在api平台上的自定义操作上进行验证,但这不起作用。

仅在验证没有错误但无论如何都更改了密码的情况下,我才想更改密码。

如果我从验证批注中删除验证组,它将起作用。

例如,如果我将 @Assert \ NotBlank(groups = {“ put-reset-password”})替换为 @Assert \ NotBlank 验证通行证。

>

这是实体的代码:

  "CHANGE-PASSWORD"={
    "method"="PUT",
     "path"="/users/change-password/{id}",
     controller"="App\Controller\ChangePasswordController",
     "access_control"="is_granted('EDIT-PASSWORD', previous_object) and object == user",
     "openapi_context"={
        "summary"="Change Password"
     },
     "denormalization_context"={
        "groups"={"put-reset-password"}
     },
     "validation_groups"={"put-reset-password"},
  },

这是我的控制器

public function __invoke(User $data)
{

    // Validate data and handle validation errors
    $this->validator->validate($data);

    $data->setPassword($this->userPasswordEncoder->encodePassword($data, $data->getNewPassword()));


    $this->entityManager->flush();
    $token = $this->tokenManager->create($data);


    return $data;
}

这是我使用验证组的属性之一。

/**
 * @Groups({"put-reset-password"})
 * @Assert\NotBlank(groups={"put-reset-password"})
 * @UserPassword(groups={"put-reset-password"})
 */
private $oldPassword;

有什么问题吗?

0 个答案:

没有答案



Similar searches
    C中字符串中的子字符串替换 Visual Studio软件包不会听重定向指令 当现有坐标旋转一个角度时,如何获取新坐标? 有没有一种方法可以强制javascript元素根据最初定义的方式重新定义自身? 如果SELECT SQL Server值为null,则查询需要5分钟C#