gpt4 book ai didi

forms - 表单集合上的 ZF2 对象绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 21:58:57 27 4
gpt4 key购买 nike

我正在处理 Zend Framework 2 项目,其中用户必须能够添加/编辑发票。发票由一些客户信息(例如姓名、地址)和一个或多个发票行组成。为此,我使用了两个 Doctrine 2 实体:InvoiceInvoiceLine。一张发票包含一个 Doctrine ArrayCollection 及其所有行。

我也有一个发票表格和一个行字段集。此表单包含所有行的 Form Collection:

$form->add(array(
'type' => 'Zend\Form\Element\Collection',
'name' => 'lines',
'options' => array(
'should_create_template' => true
)
));
$form->get('lines')->setTargetElement($this->createLineFieldset($form->get('lines')- >getTemplatePlaceholder()));

发布表单后,我将发票实体绑定(bind)到表单并验证表单。对于新的(不存在的)发票,这非常有效,我的发票包含所有信息,包括行:

$form->bind($invoice);
$form->setData($request->getPost());

if ($form->isValid()) {
// Form is valid and invoice contains all information (including lines)
}

如果我想编辑现有发票,事情就会开始出错。当我用我现有的发票(和行)填充表格时,一切似乎都很好;所有字段和字段集都填充了值。但是,当我发布此表单时,所有字段集(现有的或新的行)都未经过验证,并且我的实体不包含正确的值;所有行都丢失了。

简而言之:添加工作正常,但编辑发票却不行。

我是不是遗漏了什么或者这是一个错误?提前致谢!

最佳答案

看这篇文章Form with relationship One-to-One, One-to-Many http://zf2cheatsheet.com/#form

关于forms - 表单集合上的 ZF2 对象绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17277055/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com