Zend framework2 使用数据库、TableGateways和Form ElementCollection的ZF2一对多关系

Zend framework2 使用数据库、TableGateways和Form ElementCollection的ZF2一对多关系,zend-framework2,one-to-many,formcollection,tablegateway,Zend Framework2,One To Many,Formcollection,Tablegateway,我正在寻找一种在ZF2中使用TableGateways在两个表之间创建一对多关系的策略。表一称为“工人”,一名工人有许多“部门” 现在,我想为工人创建一个表单,其中包含一个特殊的DepartmentFieldset(输入ID的Textfield) 我是这样想的: worker模型还有一个departmentID类型数组,但表中没有departmentID字段。这个字段还有一个getter和setter 编辑操作: 在workers TableGateway的editAction()中,我必须填写

我正在寻找一种在ZF2中使用TableGateways在两个表之间创建一对多关系的策略。表一称为“工人”,一名工人有许多“部门”

现在,我想为工人创建一个表单,其中包含一个特殊的DepartmentFieldset(输入ID的Textfield)

我是这样想的: worker模型还有一个departmentID类型数组,但表中没有departmentID字段。这个字段还有一个getter和setter

编辑操作: 在workers TableGateway的editAction()中,我必须填写ID的正常表单+表单集合,因此我需要两个表中的数据

$worker = $this -> getWorkerTable() -> getWorker($id);
$departments = $this -> getDepartmentWorkerTable() -> getDepartments($id);
$worker -> setDepartmentIds($departments);
worker模型中的DepartmentId字段必须是什么类型,我现在可以使用它

$form = new WorkerForm();
$form -> bind($worker);
?

现在让我们来看一看,数据被发布和验证(验证是在我的模型中用getInputFilter()设置的)。我想保存所有数据:

$this -> getWorkerTable() -> saveWorker($worker);
$this -> getDepartmentWorkerTable() -> saveDepartments($worker);
这样做对吗? 我认为如果这能起作用,那么ADDAction就不是问题

因此,主要问题是:

如何设置模型来处理一对多关系?exchangeArray()函数必须如何编写?

如何使用ElementCollections填写表单,并使用多个Realtionship表中的数据?

我认为主要的问题是,如何使用TableGateway填充的实体,该实体还包含一个额外的关系字段

一些有价值的建议将是伟大的

你好,尤里