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 方法 PUT
和 POST
工作正常。两种类型的请求都包含对象数据的完整表示,因此很容易使用 Zend\Form
来验证它。我们只需在表单实例上设置接收到的数据即可。
但是,PATCH
请求仅包含部分数据:应该更改的数据,没有其他内容。简单地在表单上设置接收到的数据会导致验证失败,因为显然缺少一些数据。
你能让Zend\Form
接受部分数据吗?这是 'allow_empty' InputFilter
选项的用途吗?或者我们是否必须在表单上设置数据之前手动获取现有数据并将其与接收到的数据合并?
显然 Zend\Form
不支持部分数据。因此,为了将 Zend\Form
用于 PATCH
请求,唯一的解决方案是从数据库中获取完整的对象,然后将请求的数据合并到获取的数据中。
我们正在使用 Zend\Form
实现 REST API。这对于 HTTP 方法 PUT
和 POST
工作正常。两种类型的请求都包含对象数据的完整表示,因此很容易使用 Zend\Form
来验证它。我们只需在表单实例上设置接收到的数据即可。
但是,PATCH
请求仅包含部分数据:应该更改的数据,没有其他内容。简单地在表单上设置接收到的数据会导致验证失败,因为显然缺少一些数据。
你能让Zend\Form
接受部分数据吗?这是 'allow_empty' InputFilter
选项的用途吗?或者我们是否必须在表单上设置数据之前手动获取现有数据并将其与接收到的数据合并?
显然 Zend\Form
不支持部分数据。因此,为了将 Zend\Form
用于 PATCH
请求,唯一的解决方案是从数据库中获取完整的对象,然后将请求的数据合并到获取的数据中。