使用Database,TableGateways和Form ElementCollection的ZF2一对多关系

时间:2014-07-01 16:11:35

标签: zend-framework2 one-to-many formcollection tablegateway

我正在使用TableGateways搜索两个表之间在ZF2中创建一对多关系的策略。表一被称为"工人"一个工人有很多部门和#34;。

现在我想为工作人员提供一个表格,其中包含一个特殊的DepartmentFieldset(Textfield输入ID)。

我正在考虑这种方式: worker Model还有一个用于departmentID的类型数组,但是表中没有departmentID的字段。此区域还有一个吸气剂和固定剂。

编辑行动: 在工作者TableGateway的editAction()中,我必须填写正常形式+ ID的表单集合,因此我需要来自两个表的数据。

$worker = $this -> getWorkerTable() -> getWorker($id);
$departments = $this -> getDepartmentWorkerTable() -> getDepartments($id);
$worker -> setDepartmentIds($departments);

工作模型中的departmentIDs字段必须是什么类型,我现在可以使用

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

现在假设,数据已发布并经过验证(在我的模型中使用getInputFilter()设置验证)。我想保存所有数据:

$this -> getWorkerTable() -> saveWorker($worker);
$this -> getDepartmentWorkerTable() -> saveDepartments($worker);

这是正确的方法吗? 我认为如果这样做,ADDAction不是问题。

所以主要问题是:

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

如何使用多个实际关系表中的数据填充带有ElementCollections的表单?

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

一些有价值的提示会很棒!

此致,尤里

0 个答案:

没有答案