我在保溼ZF2中的物體時遇到了問題。從現場套裝保溼多個對象ZF2
我有一個表單用於將組織相關信息或與人員相關的信息保存到數據庫中。用戶做出選擇:保存組織或人員。所有html輸入只有1個表單。
在ZF2中,我創建了2個字段集。在每個字段組中,我使用setHydrator(new ClassMethods(false))
和setObject(new <objectForHydration>)
。 2個字段集包括與以下代碼的形式:
$this->add([
'type' => 'Parties\Form\Fieldsets\RegisterOrganizationFieldset',
'options' => [
'use_as_base_fieldset' => true,
],
]);
$this->add([
'type' => 'Parties\Form\Fieldsets\RegisterPersonFieldset',
'options' => [
'use_as_base_fieldset' => true,
],
]);
我想RegisterOrganizationFieldset
水合OrganizationObject
,和RegisterPersonFieldset
水合PersonObject
。
我想同時保溼兩個對象,因爲這不會將條件引入表單類。問題是水合只發生在1個對象上,具體取決於哪個字段集具有use_as_base_fieldset = true
。如果兩個字段集都具有use_as_base_fieldset = true
,則稍後代碼(RegisterPersonFieldset)中的字段集合只能合併其各自的對象。
你能告訴如何水合這兩個對象嗎?也許如何以更好的方式水合物體?
編輯:
由於@jcropp指出,我用人物和組織爲是獨立的實體僅共享Id屬性的締約方。
這是你的第二個變體:派對可以是組織或人物。我想過使用表繼承。問題在於,在我的模型中,個人和組織唯一的共同財產是id。我想最好的策略是使用聚合水合劑或編寫自己的RegisterParty類,它將決定哪個對象要水合,並且實際上會進行水合作用。 –