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.
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german