[TYPO3-mvc] getting the arguments of the form?

Bastian Waidelich bastian at typo3.org
Mon Feb 20 15:51:58 CET 2012


Stig Nørgaard Færch wrote:

Hi,

> Then I found I could get the original value with _getCleanProperty():
>
> if($person->_getCleanProperty('streetName') != $person->getStreetName()) {
> // The value has changed
> }
>
> Is this the way?

Not quiet. The leading underscore should emphasize that this method is 
not part of the Public API [1] (it only needs to be public because it is 
called by the framework).
So while this might work for you it is not assured that this behavior 
stays the same in upcoming versions of Extbase.

Interesting to know is that the setter of a property is only called when 
the respective property was changed, the unchanged properties are 
initialized with some magic.
You could make use of that by adding some getter that returns all 
changed fields:

protected $modifiedProperties = array();

public function setStreetName($streetName) {
	$this->modifiedProperties['streetName'] = $streetName;
	$this->streetName = $streetName;
}

public function getModifiedProperties() {
	return $this->modifiedProperties;
}

While this seems cleaner code-wise, it's still a bit tedious and 
error-prone (you have to remember to add the line for every new property).
Out of curiosity: Why do you need to compare the fields?

Best,
Bastian

[1] http://forge.typo3.org/projects/typo3v4-mvc/wiki/Public_API



More information about the TYPO3-project-typo3v4mvc mailing list