【问题标题】:Require a field in symfony2 server side在 symfony2 服务器端需要一个字段
【发布时间】:2018-07-31 20:34:24
【问题描述】:

我在 Symfony2 中有一个表单,我正在使用 buildForm 构建它 我像这样添加约束,

$builder
->add('firstName', 'text', [
        'required' => true,
        'constraints' => [
            new NotBlank(),
        ],
    ]
)

一切正常,直到我从我的 html 中删除输入并在没有名字的情况下提交它。我没有收到任何错误,它正常提交。有没有办法绝对要求名字,即使提交数据中不存在

【问题讨论】:

  • 您可能希望将控制器代码添加到您的问题中。

标签: symfony symfony-forms symfony-2.6


【解决方案1】:

您必须按照symfony documentation here 中的说明对您的实体使用断言

像这样:

class User
{
    /**
     * @orm:Column(type="string", nullable=false)
     * @assert:NotBlank
     */
    private $firstname;
}

【讨论】:

  • 当做出不同的断言时,只有当输入在提交的数据字段中时才会检查它。我想要求表单包含提交数据中存在的某个字段。之后,它将使用断言正常验证。
  • 不要忘记在实体的 $firstname 字段的属性中指明“nullable=false”。
【解决方案2】:

您没有提交任何数据,表单没有提交,因此没有触发验证。

代替:

$this->handleRequest($request);

即使数据丢失,也要尽量提交表单:

$form->submit($request->request->all());

我无法保证此代码在您的上下文中有效,因为您没有提供控制器代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 2013-01-16
    相关资源
    最近更新 更多