2016-08-15 7 views
1

FEユーザーモデルを拡張する拡張ビルダーを使用して拡張を作成しました。TYPO3:FEユーザーの姓名を保存して編集します

フィールドにアクセスするために、私はそれに応じて拡張ビルダー内のプロパティを追加しました。これはcityzipaddressなどと大きく役立ちました。残念ながら、アンダースコアを入力することはできませんので、first_namelast_nameをプロパティに追加できませんでした。代わりにfnamelname(外出先のビルダーの内側に)を付け加えて、fnamelnameからfirst_namelast_nameという名前を手で(コード内に)名前を変更しました。

私はあなたが今まで私に従うことを望みます。

フロントエンドの新しいアクションでFEユーザーを追加するときに問題が生じるため、姓と名が保存されません。 しかし、バックエンドで問題なく保存できます。

これを修正する方法はありますか?

答えて

2

フィールド名にはエクストラベースの表記法を使用してください(モデルクラスのラクダ大文字小文字の場合、たとえば$firstNameおよび$lastName)。これを行うと、データベースフィールドfirst_namelast_nameに自動的にマッピングされますが、これもextension_builderの制限の理由です。これを行わない場合は、TypoScript設定で手動でフィールド名とデータベースフィールドのマッピングを設定する必要があります。

また、extbase FrontendUserモデルで提供されているプロパティとアクセサーメソッドを使用することもできます。これを継承します。これは、自分で実装する必要はありません。

+0

私はすべての '$ first_name'を' $ firstName'に変更する必要がありますか?ゲッターやセッターと一緒にやってもいいですか? – Norman

+0

場合によっては、フィールドにアクセスするためにゲッターとセッターが内部的に使用されるためです。名前は 'getFirstName()'、 'setFirstName($ newFirstName)'などとする必要があります(引数名は関係ありません)。 – Jost

+0

また、エクステンションモデルを継承している場合は、そのすべてのものを既に持っているはずです... – Jost

関連する問題