Zend\Form 和 REST:使 Zend\Form 接受部分数据以实现 HTTP PATCH 方法

Zend\Form and REST: Make Zend\Form accept partial data to implement a HTTP PATCH method

我们正在使用 Zend\Form 实现 REST API。这对于 HTTP 方法 PUTPOST 工作正常。两种类型的请求都包含对象数据的完整表示,因此很容易使用 Zend\Form 来验证它。我们只需在表单实例上设置接收到的数据即可。

但是,PATCH 请求仅包含部分数据:应该更改的数据,没有其他内容。简单地在表单上设置接收到的数据会导致验证失败,因为显然缺少一些数据。

你能让Zend\Form接受部分数据吗?这是 'allow_empty' InputFilter 选项的用途吗?或者我们是否必须在表单上设置数据之前手动获取现有数据并将其与接收到的数据合并?

显然 Zend\Form 不支持部分数据。因此,为了将 Zend\Form 用于 PATCH 请求,唯一的解决方案是从数据库中获取完整的对象,然后将请求的数据合并到获取的数据中。