[TYPO3-german] femanager mit eigenem Feld erweiteren. Fehlermeldung: Exception while property mapping at property path

Bernd Pier macbepepi at me.com
Fri Apr 28 16:29:33 CEST 2017


Hallo liebe Liste,

ich versuch grad die Extension femanager um ein Feld (customernumber) zu 
erweitern.

Hab dafür in der ext_tables.sql
CREATE TABLE fe_users (
	customernumber varchar(255) DEFAULT '' NOT NULL,
);

dann in der ext_tables.php
$tsConfig = 'tx_femanager.flexForm.edit.addFieldOptions.customernumber = 
Kundennummer' . PHP_EOL;
$tsConfig .= 'tx_femanager.flexForm.new < tx_femanager.flexForm.edit';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig($tsConfig);

In der /Configuration/TCA/User.php hab ich die TCA Definition eingetragen:
	'customernumber' => array(
		'exclude' => 1,
		'label' => 
'LLL:EXT:extendfemanager/Resources/Private/Language/locallang_db.xlf:tx_extendfemanager_domain_model_user.customernumber',
		'config' => array(
			'type' => 'input',
			'size' => 30,
			'eval' => 'trim'
		),
	),

und mit addTCAcolumns und addToAllTCAtypes der Tabelle fe_users hinzugefügt.

dann hab ich im /Classes/Domain/Model/User.php das Feld eingetragen:
	/**
	 * customernumber
	 *
	 * @var string
	 */
	protected $customernumber;
	/**
	 * Returns the customernumber
	 *
	 * @return string $customernumber
	 */
	public function getCustomernumber() {
		return $this->customernumber;
	}

	/**
	 * Sets the customernumber
	 *
	 * @param string $customernumber
	 * @return void
	 */
	public function setCustomernumber($customernumber) {
		$this->customernumber = $customernumber;
	}

Im Typoscript meiner Extension hab ich mein Model eingetragen und mein 
Model auf die Tabelle fe_users gemappt undsoweiter:
config.tx_extbase{
	persistence{
		classes{
			In2\Femanager\Domain\Model\User {
				subclasses {
					0 = FederhenSchneider\Extendfemanager\Domain\Model\User
				}
			}
			FederhenSchneider\Extendfemanager\Domain\Model\User {
				mapping {
					tableName = fe_users
					recordType = 0
				}
			}
		}
	}
	objects {
		In2\Femanager\Controller\NewController.className = 
FederhenSchneider\Extendfemanager\Controller\NewController
		In2\Femanager\Controller\EditController.className = 
FederhenSchneider\Extendfemanager\Controller\EditController

		In2\Femanager\Domain\Validator\ServersideValidator.className = 
FederhenSchneider\Extendfemanager\Domain\Validator\CustomServersideValidator
		In2\Femanager\Domain\Validator\ClientsideValidator.className = 
FederhenSchneider\Extendfemanager\Domain\Validator\CustomClientsideValidator
	}
}

plugin.tx_femanager {
	view {
		partialRootPaths {
			10 = EXT:extendfemanager/Resources/Private/Partials/
		}
	}
}

Ich habe im Backend bei dem User das Feld, kann es befüllen und der Wert 
wird in die DB gespeichert. In meinem Formular hab ich auch das Feld 
aber wenn ich das Formular absende dann kommt folgender Fehler:
„Exception while property mapping at property path "": Property 
"customernumber" was not found in target object of type 
"In2code\Femanager\Domain\Model\User“.“

Meinem Partial sieht so aus:
{namespace femanager=In2code\Femanager\ViewHelpers}

<div class="femanager_fieldset control-group">
	<div class="controls">
		<femanager:form.textfield
				id="customernumber"
				name="customernumber"
				property="customernumber"
				placeholder="{f:translate(key: 
'tx_extendfemanager_domain_model_user.customernumber', extensionName: 
'extendfemanager')}"
				class="input-block-level"
			 
additionalAttributes="{femanager:Validation.FormValidationData(settings:settings,fieldName:'customernumber')}" 
/>
	</div>
</div>

Wieso schaut der noch beim Model von In2Code nach obwohl ich ihm doch 
gesagt habe er solle meins nehmen?

Bin für jede Idee dankbar ;-)

grüsse

Bernd P.

Mein System:
PHP 7.0
Typo3 7.6.18
Femanager 2.6.0


More information about the TYPO3-german mailing list