同一实体的多个不同验证

时间:2016-01-23 11:17:11

标签: symfony

现实:

  • 我有一个User实体;
  • 我有FormType实体的User课程;
  • 我有一个twig模板来呈现FormType类;
  • 我有一个全新功能的新用户;

问题:

  • 我想创建一个用于编辑现有用户的新模板;
  • 我不想创建一个新的表单类型只是为了编辑;
  • 我想使用User编辑FormTypeUser已用于创建新用户;
  • 我总是使用相同的实体FormType(创建,编辑等...);

对于此echo "<h4><a href='"; echo the_permalink(); echo "'>"; echo get_field('client'); echo "</a></h4>"; echo "<h4><a href='"; echo the_permalink(); echo "'>"; echo the_title(); echo "</a></h4>"; 的不同呈现,我想更改验证系统的行为。例如:

  • 创建:密码字段是必填字段
  • 编辑:密码不是强制性的(如果是空白,则密码不会更改,但如果数据库中没有空白更改)

当我在网上阅读时,所有解决方案都基于一个实体的唯一约束。永远不要对同一个字段实体应用不同的规则约束。事实上,我不明白如何为不同的动作CRUD使用相同的FormType

问题是:如何对处理不同逻辑效用的相同字段实体应用不同的约束规则。

Schema Entity Form constraints

1 个答案:

答案 0 :(得分:3)

使用validation groups

// registration
$form = $this->createForm(UserType::class, $userModel, [
    'validation_groups' => ['registration', 'Default']
]);

// edit
$form = $this->createForm(UserType::Class, $userModel);
require('babel-polyfill')