【问题标题】:Do asserts check database data or submitted form data?断言检查数据库数据或提交的表单数据吗?
【发布时间】:2022-01-24 08:27:46
【问题描述】:

我有一个文件输入,我不想在更新表单时为空(当我创建它时,默认值为空,这就是我允许它在 DB 中为空的原因)。

这是我的实体的样子:

/**
 * @ORM\Column(type="string", length=255, nullable=true)
 */
#[Assert\NotNull]
private $idCard;

public function getIdCard(): ?string
{
    return $this->idCard;
}

public function setIdCard(?string $idCard): self
{
    $this->idCard = $idCard;

    return $this;
}

还有我的表单类型:

->add('idCard', FileType::class, [
            'mapped' => false,
            'required' => true,
            'label'    => 'Choose a file'
        ])

在我的数据库中,此属性为空,因为尚未上传任何内容。但是当我尝试上传一些东西时,它会抛出错误“这个值不应该为空”。我尝试在数据库中用''(空白)替换NULL并且它起作用了。就像约束是检查数据库而不是提交的表单数据一样。如果是这种情况,我该如何检查我的字段数据是否不为空(服务器端)并在为空时抛出错误?

【问题讨论】:

    标签: forms symfony null constraints field


    【解决方案1】:

    我找到了答案,就是设置mapped => true而不是mapped => false,这样就可以在实体和表单之间建立链接了。

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 1970-01-01
      • 2019-01-19
      • 2013-12-31
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 2018-04-20
      相关资源
      最近更新 更多