[FLOW3-general] Creating two objects in one form

Bastian Waidelich bastian at typo3.org
Wed Aug 1 10:51:01 CEST 2012


David Sporer wrote:

Hi David,

> I have two models Customer and CustomerUser and I want to create a
> Register.html Fluid Template to create both [...]

The easiest solution is probably to create a so called Data Transfer 
Object [1].
I usually store them in a folder "Dto":


<?php
namespace Your\Package\Domain\Dto;

class CustomerAndUserDto {

	/**
	 * @var \Your\Package\Domain\Model\Customer
	 */
	protected $customer;


	/**
	 * @var \Your\Package\Domain\Model\CustomerUser
	 */
	protected $customerUser;

	// getters & setters ...

}
?>


and then in the Fluid form:


<f:form action="create" objectName="newCustomerAndUser">
   <f:form.textfield property="customer.someCustomerProperty" />
   <f:form.textfield property="customerUser.someUserProperty" />
   ...
</f:form>

(untested)

The advantage is that you have mapping & validation errors in one place 
and that you can create a base validator for the Dto.


Note: The Dto is not persisted, it must not have an @FLOW3\Entity 
annotation.


HTH


[1] http://en.wikipedia.org/wiki/Data_Transfer_Object

-- 
Bastian Waidelich
TYPO3 Core Team Member

TYPO3 .... inspiring people to share!
Get involved: typo3.org


More information about the FLOW3-general mailing list