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

Bernd Pier macbepepi at me.com
Tue May 2 11:11:55 CEST 2017


Am 28.04.17 um 16:29 schrieb Bernd Pier:
> 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
Aaah ich hab immer nur meinen Namespace betrachtet aber nicht den von 
In2Code da steckte der Fehler. Es muss statt
In2\Femanager
natürlich
In2code\Femanager
heißen.



More information about the TYPO3-german mailing list